- you everyone for joining us here at first pull request live on Zoom this is
- first pull request live on Zoom this is a world premiere
- a world premiere the world premiere of a just you know
- the world premiere of a just you know little workshop that Simon and I had put
- little workshop that Simon and I had put together that really just kind of grows
- together that really just kind of grows out of some you know my our own activity
- out of some you know my our own activity as people who really love and want to
- as people who really love and want to promote open source software and kind of
- promote open source software and kind of like a little tradition in the data
- like a little tradition in the data journalism world where I came up of you
- journalism world where I came up of you know peers teaching peers and you know
- know peers teaching peers and you know once we learn how to do something we try
- once we learn how to do something we try to share it with as many other people as
- to share it with as many other people as possible and so really the goal of this
- possible and so really the goal of this is really just to share
- is really just to share um kind of what we see as a basic
- um kind of what we see as a basic fundamental skill of Open Source
- fundamental skill of Open Source software
- software um to help to help others learn it uh I
- um to help to help others learn it uh I think we can get through the course
- think we can get through the course materials in 60 to 90 minutes maybe even
- materials in 60 to 90 minutes maybe even faster just kind of depending on how
- faster just kind of depending on how things go but I am not in a hurry at all
- things go but I am not in a hurry at all and so we can go at whatever Pace works
- and so we can go at whatever Pace works for you or just for the material
- for you or just for the material because it is our first time teaching it
- because it is our first time teaching it there will definitely be a few hinks and
- there will definitely be a few hinks and bugs and so I appreciate your patience
- bugs and so I appreciate your patience at the outset
- at the outset um I should probably introduce myself my
- um I should probably introduce myself my name is Ben Welsh I'm broadcasting to
- name is Ben Welsh I'm broadcasting to you live from Little Tokyo in downtown
- you live from Little Tokyo in downtown Los Angeles I have been a data
- Los Angeles I have been a data journalist at the Los Angeles Times for
- journalist at the Los Angeles Times for 15 years next week this year I'm
- 15 years next week this year I'm currently on a fellowship at Stanford
- currently on a fellowship at Stanford University where I'm working working in
- University where I'm working working in partnership with the journalism school
- partnership with the journalism school there on a project called Big local news
- there on a project called Big local news which tries to make data tool and tools
- which tries to make data tool and tools to work with data more accessible to the
- to work with data more accessible to the local newsrooms across the world I am
- local newsrooms across the world I am joined by my co-instructor Simon
- joined by my co-instructor Simon Willison Simon would you care to
- Willison Simon would you care to introduce yourself sure yeah my name's
- introduce yourself sure yeah my name's Simon Willison I've been an open source
- Simon Willison I've been an open source developer for nearly 20 years I think I
- developer for nearly 20 years I think I worked on what became Django the web
- worked on what became Django the web framework more recently I spent the past
- framework more recently I spent the past five years working on a project called
- five years working on a project called dataset which is open source software
- dataset which is open source software aimed at helping people will analyze and
- aimed at helping people will analyze and publish their data I did a Stanford
- publish their data I did a Stanford Fellowship a few years ago which
- Fellowship a few years ago which completely ruined me because I got to
- completely ruined me because I got to work on whatever I thought was
- work on whatever I thought was interesting and I've continued to do
- interesting and I've continued to do that unpaid ever since so I'm coming to
- that unpaid ever since so I'm coming to you from uh Half Moon Bay just south of
- you from uh Half Moon Bay just south of San Francisco and yeah I'm uh I've
- San Francisco and yeah I'm uh I've always been I I spent a lot of my career
- always been I I spent a lot of my career journalism adjacent I like writing tools
- journalism adjacent I like writing tools and writing software that journalists
- and writing software that journalists can use so this this Workshop meshes two
- can use so this this Workshop meshes two of my interests really well
- of my interests really well all right well thank you for joining us
- all right well thank you for joining us so Simon will just be here chiming in
- so Simon will just be here chiming in and correcting all my mistakes and um
- and correcting all my mistakes and um and helping me kind of work us through
- and helping me kind of work us through this material obviously you know
- this material obviously you know um
- um uh uh uh I do not obviously but let me
- uh uh uh I do not obviously but let me just say please interrupt us or ask
- just say please interrupt us or ask questions or speak up as we go through
- questions or speak up as we go through this stuff we want to make sure that you
- this stuff we want to make sure that you guys get it there's five to ten pieces
- guys get it there's five to ten pieces of absolutely outrageous nerd jargon
- of absolutely outrageous nerd jargon that we're gonna have to like try to
- that we're gonna have to like try to struggle to define and explain and I'm
- struggle to define and explain and I'm sure we won't be perfect at it or we
- sure we won't be perfect at it or we might use some other weird terms that
- might use some other weird terms that you haven't encountered before and if we
- you haven't encountered before and if we do just stop us or just ask you can just
- do just stop us or just ask you can just honestly just interrupt over the
- honestly just interrupt over the microphone is fine or just toss
- microphone is fine or just toss something in the chat whatever you're
- something in the chat whatever you're comfortable with
- comfortable with um and that's it so um that's the that's
- um and that's it so um that's the that's the deal My Hope Is we can work through
- the deal My Hope Is we can work through this and the goal is to show you how to
- this and the goal is to show you how to uh make changes to open source software
- uh make changes to open source software to look at the code that other folks
- to look at the code that other folks have published on the web make a tweak
- have published on the web make a tweak and suggest that they include it and
- and suggest that they include it and this that process is called a pull
- this that process is called a pull request when it's done via the website
- request when it's done via the website github.com which is the most popular
- github.com which is the most popular code management site there's other words
- code management site there's other words for it that's what GitHub calls it and
- for it that's what GitHub calls it and our goal is to teach you how to do that
- our goal is to teach you how to do that today and this technique is really a
- today and this technique is really a basic skill of software development that
- basic skill of software development that if you are interested in becoming a
- if you are interested in becoming a developer or just a hobbyist who
- developer or just a hobbyist who contributes to code you're going to want
- contributes to code you're going to want to learn and um for the purposes of the
- to learn and um for the purposes of the demonstration everyone who works through
- demonstration everyone who works through the class will make a pull request today
- the class will make a pull request today to an open source website that I
- to an open source website that I maintain which we'll look at in a minute
- maintain which we'll look at in a minute before we get into that I'd like
- before we get into that I'd like everybody to go to the web address that
- everybody to go to the web address that I've put right here in our little help
- I've put right here in our little help file and it is at bit dot lead slash
- file and it is at bit dot lead slash first hyphen PR and PR is a common piece
- first hyphen PR and PR is a common piece of slang for a pull request right so
- of slang for a pull request right so there's a there's our first gunky jargon
- there's a there's our first gunky jargon so it's bit dot Lee slash first hyphen
- so it's bit dot Lee slash first hyphen PR and if you go there you'll see the
- PR and if you go there you'll see the script we wrote which we're going to
- script we wrote which we're going to walk through together which contains
- walk through together which contains everything we're going to cover
- everything we're going to cover now before I launch into that
- now before I launch into that I want to open it up to everybody who's
- I want to open it up to everybody who's come to see if there's any questions so
- come to see if there's any questions so before we begin does anybody have any uh
- before we begin does anybody have any uh any questions about
- any questions about um the class or just things in general
- no okay Arky I see you shared the link is that
- Arky I see you shared the link is that working for you
- I I'll take that as a yes all right everybody so here we go on the site
- everybody so here we go on the site let's begin so in the first chapter we
- let's begin so in the first chapter we kind of cover what we're going to do
- kind of cover what we're going to do here and that is of course make this
- here and that is of course make this code contribution which is known as a
- code contribution which is known as a pull request the site that everyone will
- pull request the site that everyone will be contributing to is called the EE
- be contributing to is called the EE Cummings free Poetry archive this is a
- Cummings free Poetry archive this is a website that's at the Domain cummings.e
- website that's at the Domain cummings.e and it everything about this website is
- and it everything about this website is open source software that is hosted on
- open source software that is hosted on GitHub and that anyone can contribute to
- GitHub and that anyone can contribute to and the mission of this site
- and the mission of this site um is to transcribe the Poetry of EE
- um is to transcribe the Poetry of EE Cummings as it gradually enters the
- Cummings as it gradually enters the public domain
- public domain uh the way that copyright law works in
- uh the way that copyright law works in the United States is that after a work
- the United States is that after a work is created uh it is protected legally as
- is created uh it is protected legally as the intellectual property of the author
- the intellectual property of the author or the owner of it but then after a
- or the owner of it but then after a certain number of years it expires and
- certain number of years it expires and it enters What's called the public
- it enters What's called the public domain which it effectively becomes open
- domain which it effectively becomes open source of its own and anyone is able to
- source of its own and anyone is able to resell repackage or remix it in any way
- resell repackage or remix it in any way they like we're in an interesting moment
- they like we're in an interesting moment now which is each January 1st when the
- now which is each January 1st when the next year of old material goes live
- next year of old material goes live we're gradually crawling through the
- we're gradually crawling through the 1920s right now here in the United
- 1920s right now here in the United States which means that many works of
- States which means that many works of modernist poetry uh early Cinema uh and
- modernist poetry uh early Cinema uh and uh and early popular music are beginning
- uh and early popular music are beginning to enter the public domain famously last
- to enter the public domain famously last year the Great Gatsby became a public
- year the Great Gatsby became a public domain item and so you can look forward
- domain item and so you can look forward to
- to Simon's graphic novel casting his pets
- Simon's graphic novel casting his pets in The Great Gatsby or I don't know what
- in The Great Gatsby or I don't know what exactly right but whatever you would
- exactly right but whatever you would want to do would be uh totally uh free
- want to do would be uh totally uh free at this point and as someone who loves
- at this point and as someone who loves open source dog software but also a
- open source dog software but also a public domain and is a little bit of an
- public domain and is a little bit of an amateur archivist I just took on as a
- amateur archivist I just took on as a hobby during the pandemic the um
- hobby during the pandemic the um the the mission of trying to open up EE
- the the mission of trying to open up EE Cummings work and so for the last couple
- Cummings work and so for the last couple of years I've been leading the drive to
- of years I've been leading the drive to gradually enter all of the poems into
- gradually enter all of the poems into the site as they open and this year on
- the site as they open and this year on January 1st a book that came out in 1926
- January 1st a book that came out in 1926 called is five which is the fourth book
- called is five which is the fourth book by E Cummings entered the public domain
- by E Cummings entered the public domain it has 88 poems in the book and
- it has 88 poems in the book and currently only 28 of them have been
- currently only 28 of them have been entered into the website which is really
- entered into the website which is really just the process of transcription
- just the process of transcription um I've gone to the Los Angeles Public
- um I've gone to the Los Angeles Public Library the Central Library downtown
- Library the Central Library downtown where they have a first edition of the
- where they have a first edition of the book and I scanned that in and uploaded
- book and I scanned that in and uploaded it to the internet archive and so the
- it to the internet archive and so the process isn't that beautiful the process
- process isn't that beautiful the process of um transcription is really taking the
- of um transcription is really taking the copy that appears in these scans and
- copy that appears in these scans and keep punching them into a computer file
- keep punching them into a computer file that can go into the website okay and
- that can go into the website okay and that's all done on github.com Via what's
- that's all done on github.com Via what's called a code repository which I'm
- called a code repository which I'm looking at right here Simon how would
- looking at right here Simon how would you define a code Repository
- you define a code Repository so a repository it's
- so a repository it's that's a really trick that's a
- that's a really trick that's a surprisingly tricky question it's like a
- surprisingly tricky question it's like a folder it's a directory on a computer
- folder it's a directory on a computer where it would be a product where you
- where it would be a product where you keep all of the code that exists in a
- keep all of the code that exists in a single project
- single project um with with a GitHub repository that's
- um with with a GitHub repository that's that's the thing that you've then
- that's the thing that you've then published and either publicly so anyone
- published and either publicly so anyone can see it or GitHub also lets you have
- can see it or GitHub also lets you have private repositories that you can use to
- private repositories that you can use to collaborate with other people so um
- collaborate with other people so um there are there are people who will
- there are there are people who will debate how much should go into
- debate how much should go into repository let's say put everything that
- repository let's say put everything that your company does in a single repository
- your company does in a single repository have a they call it a um a mono
- have a they call it a um a mono repository this is not a debate for
- repository this is not a debate for today for for our purposes something
- today for for our purposes something like cummings.ee is a perfect example of
- like cummings.ee is a perfect example of the size of project you might want to
- the size of project you might want to have an individual project uh repository
- have an individual project uh repository for
- for right so all the code that makes the
- right so all the code that makes the website that we're looking at right here
- website that we're looking at right here everything that puts this together is
- everything that puts this together is contained within this kind of magic
- contained within this kind of magic folder hosted by github.com and because
- folder hosted by github.com and because I've made the code open source AKA open
- I've made the code open source AKA open to the Public's review I'm actually able
- to the Public's review I'm actually able to host it for free which is one of the
- to host it for free which is one of the nice things about GitHub and one of the
- nice things about GitHub and one of the chief reasons why it's become the
- chief reasons why it's become the dominant place to find open source
- dominant place to find open source software in a sense GitHub is
- software in a sense GitHub is effectively a social network for these
- effectively a social network for these these code repositories or these folders
- these code repositories or these folders and So within this website you can find
- and So within this website you can find the code that powers Django the project
- the code that powers Django the project that Simon worked on you can find the
- that Simon worked on you can find the code that um
- code that um that that what was on the initial space
- that that what was on the initial space the initial space missions from NASA you
- the initial space missions from NASA you can find the code that runs inside of
- can find the code that runs inside of your smart watch and just literally tens
- your smart watch and just literally tens of thousands or hundreds of thousands of
- of thousands or hundreds of thousands of software projects each have a page like
- software projects each have a page like this one that's Project Specific where
- this one that's Project Specific where they store all of the files that kind of
- they store all of the files that kind of make the application but then they also
- make the application but then they also collaborate with other developers to
- collaborate with other developers to carefully make changes to that code
- carefully make changes to that code using a system called Version Control
- using a system called Version Control which is just really computer
- which is just really computer programming tricks for very carefully
- programming tricks for very carefully managing edits to individual files to
- managing edits to individual files to make sure you don't break the code or
- make sure you don't break the code or the two people don't make conflicting
- the two people don't make conflicting changes
- changes uh any questions about GitHub or
- uh any questions about GitHub or repositories
- no okay so yeah by GitHub is there any good tutorial or
- by GitHub is there any good tutorial or book to explain this because every time
- book to explain this because every time I've tried to learn it I've just given
- I've tried to learn it I've just given up
- up and you get stuck with trying to like uh
- and you get stuck with trying to like uh create a repository with your terminal
- create a repository with your terminal or where do you get where do you get
- or where do you get where do you get caught up
- caught up um
- I usually lose track of how to make the whole thing work
- whole thing work yeah I mean it's just it's it's one of
- yeah I mean it's just it's it's one of these things that's especially tricky
- these things that's especially tricky because you have on the web you have
- because you have on the web you have this magic folder that exists also as a
- this magic folder that exists also as a web page or thing but then traditionally
- web page or thing but then traditionally when you're then working on those code
- when you're then working on those code files you have to have a copy of those
- files you have to have a copy of those files on your computer as well right and
- files on your computer as well right and so part of the dance of computer
- so part of the dance of computer programming traditionally has been the
- programming traditionally has been the to and fro of the changes that you make
- to and fro of the changes that you make on your computer versus what you submit
- on your computer versus what you submit and send to the sort of origin as they
- and send to the sort of origin as they call it the sort of Mothership
- call it the sort of Mothership repository that's on the web
- repository that's on the web go ahead Simon so um GitHub is the
- go ahead Simon so um GitHub is the website git is the software you use to
- website git is the software you use to manage the changes git has notoriously
- manage the changes git has notoriously it's one of the hardest pieces of
- it's one of the hardest pieces of software to use in all of computer
- software to use in all of computer programming like I've been using it for
- programming like I've been using it for probably 15 years I use about five
- probably 15 years I use about five percent of the functionality and I
- percent of the functionality and I frequently find myself getting confused
- frequently find myself getting confused when I dive into some of the more
- when I dive into some of the more complicated belts oh good it's not just
- complicated belts oh good it's not just me no oh no that's really important to
- me no oh no that's really important to understand it it is a nightmare to use
- understand it it is a nightmare to use yes everyone acknowledges that the thing
- yes everyone acknowledges that the thing is that because we all use it it's
- is that because we all use it it's difficult to adopt something else and
- difficult to adopt something else and what we're going to show you today is
- what we're going to show you today is ways to use the GitHub web interface to
- ways to use the GitHub web interface to avoid quite a lot of the horrors of
- avoid quite a lot of the horrors of having to use git so this Workshop you
- having to use git so this Workshop you won't be having to open a terminal at
- won't be having to open a terminal at all but you'll still be able to create
- all but you'll still be able to create edits and propose changes that's exactly
- edits and propose changes that's exactly right and and like I think Ron that the
- right and and like I think Ron that the terminal stuff I've seen trip up
- terminal stuff I've seen trip up literally hundreds of students teaching
- literally hundreds of students teaching this stuff if that's where you're having
- this stuff if that's where you're having trouble I think the stuff we'll cover
- trouble I think the stuff we'll cover today which is pretty new technology
- today which is pretty new technology will keep you entirely in the browser
- will keep you entirely in the browser and I think you can do quite a lot of
- and I think you can do quite a lot of coding that way it kind of depends what
- coding that way it kind of depends what you're trying to do
- you're trying to do um but if you want something that's in
- um but if you want something that's in between everything in the browser and
- between everything in the browser and the hell of the terminal there's an
- the hell of the terminal there's an application called GitHub desktop and
- application called GitHub desktop and it's really intended to be a bridge
- it's really intended to be a bridge between the copy that's on your computer
- between the copy that's on your computer and the copy that's on the web and I
- and the copy that's on the web and I know that quite a lot of developers even
- know that quite a lot of developers even people who are very skilled with the
- people who are very skilled with the terminal prefer tools like that just
- terminal prefer tools like that just because they think they're easier
- because they think they're easier and so my advice would be to seek out
- and so my advice would be to seek out GitHub desktop Beyond this class perhaps
- GitHub desktop Beyond this class perhaps also github.com has a pretty excellent
- also github.com has a pretty excellent help section and if you haven't looked
- help section and if you haven't looked at it in a while I would just go look at
- at it in a while I would just go look at their really introductory materials like
- their really introductory materials like how do I even get started and I bet you
- how do I even get started and I bet you um it would be more helpful than the
- um it would be more helpful than the last time you looked
- last time you looked all right
- all right so now the thing I need everyone to do
- so now the thing I need everyone to do is to log into github.com so if you
- is to log into github.com so if you already have an account great just log
- already have an account great just log into it if you don't I need you to make
- into it if you don't I need you to make one now okay and I am going to open up
- one now okay and I am going to open up an incognito web browser and try to do
- an incognito web browser and try to do that myself okay
- that myself okay I think I have
- I think I have an account I made for this but let's see
- an account I made for this but let's see if it shows up
- uh here's an older one maybe I can use that
- because I need to log in as just like a as a regular old user like you guys not
- as a regular old user like you guys not as the administrator of
- as the administrator of uh the the cummings.ee repository
- uh the the cummings.ee repository because I'm the administrator that I
- because I'm the administrator that I have special powers that the average
- have special powers that the average person on GitHub doesn't if you think
- person on GitHub doesn't if you think about it
- about it um
- um if you think about it
- if you think about it um repository can be open source it can
- um repository can be open source it can be legible and readable and accessible
- be legible and readable and accessible to all people but you can't let edits to
- to all people but you can't let edits to the code be accessible to all people
- the code be accessible to all people because then anybody could hack
- because then anybody could hack everything right and so the way that
- everything right and so the way that open source software is managed you know
- open source software is managed you know as as well as it is managed is that you
- as as well as it is managed is that you have a group of sort of super users who
- have a group of sort of super users who are often called maintainers or owners
- are often called maintainers or owners and they are the ones who manage what is
- and they are the ones who manage what is allowed to be let into the sort of main
- allowed to be let into the sort of main or Master collection of code in the
- or Master collection of code in the repository and then everyone else as an
- repository and then everyone else as an outsider is allowed to read the code to
- outsider is allowed to read the code to run the code on their own independently
- run the code on their own independently right but then also make changes and
- right but then also make changes and suggest those changes go back into the
- suggest those changes go back into the process right and that is where the
- process right and that is where the maintainers then come in to try to fix
- maintainers then come in to try to fix it and we'll see how all that works okay
- it and we'll see how all that works okay so I'm going to make a new
- so I'm going to make a new GitHub account right here
- GitHub account right here that needs a number okay
- that needs a number okay you can you guys can watch me flail
- you can you guys can watch me flail okay
- how about that okay I'm gonna generate a password
- there we go what should my news username be guys
- uh first PR see if you can get that one ah how about that
- ah how about that uh I do not want emails no
- uh I do not want emails no all right then you have to solve a
- all right then you have to solve a little puzzle this is where we prove
- little puzzle this is where we prove we're human I think it's that one
- we're human I think it's that one and then it's this one the piggies
- and then it's this one the piggies okay now we've created our account
- okay now we've created our account it's gonna email me something okay let's
- it's gonna email me something okay let's see if I get that email a launch code I
- see if I get that email a launch code I haven't seen this this flow in a very
- haven't seen this this flow in a very long time they've done all sorts of
- long time they've done all sorts of things to it yeah
- things to it yeah there's my okay I just got the email it
- there's my okay I just got the email it is 916-10570
- okay 50 plus okay
- sorry as a person who works with data all day I love to pollute other people's
- all day I love to pollute other people's data
- data um it's not a nice thing about me okay
- um it's not a nice thing about me okay continue for free
- continue for free whoa GitHub whoa that's that's what
- whoa GitHub whoa that's that's what Microsoft pays for right there dude
- Microsoft pays for right there dude all right so we're in I now have a
- all right so we're in I now have a totally blank GitHub
- totally blank GitHub um account right I'm a total newbie on
- um account right I'm a total newbie on the site you can see in the upper right
- the site you can see in the upper right there's ways to customize your account
- there's ways to customize your account if you haven't done it I'd recommend
- if you haven't done it I'd recommend turning on two-factor authentication
- turning on two-factor authentication though I won't do that here today and
- though I won't do that here today and you can see there's really not a lot
- you can see there's really not a lot going on here but one of the first
- going on here but one of the first buttons that's available to you is
- buttons that's available to you is create a repository right because that's
- create a repository right because that's one of the that's what GitHub is for is
- one of the that's what GitHub is for is to create these code folders and so if
- to create these code folders and so if you wanted to you could create a public
- you wanted to you could create a public or private uh Repository
- or private uh Repository they hold your hold your work you don't
- they hold your hold your work you don't need to do that here for today but just
- need to do that here for today but just this is just an example of kind of why
- this is just an example of kind of why it's there and now we'll see if I go to
- it's there and now we'll see if I go to the address
- the address for
- for um cummings.ee
- um cummings.ee um what I see here is slightly different
- um what I see here is slightly different than in my other browser tab where I am
- than in my other browser tab where I am an administrator where here you can see
- an administrator where here you can see there's a settings thing that allows me
- there's a settings thing that allows me to muck with the repo and here you can
- to muck with the repo and here you can see there is not right because now I'm
- see there is not right because now I'm an outsider contributor I'm not the
- an outsider contributor I'm not the maintainer and so what I can do is a
- maintainer and so what I can do is a little more restricted
- little more restricted all right so has everybody been able or
- all right so has everybody been able or already have a GitHub account are we all
- already have a GitHub account are we all into the site and ready to go
- into the site and ready to go great I see some thumbs up
- great I see some thumbs up if anybody's having issues it's totally
- if anybody's having issues it's totally fine just feel free to speak up
- if you haven't done it yet in chapter two of the class there's a link down
- two of the class there's a link down here at the bottom that goes to the code
- here at the bottom that goes to the code repository I'd just like you to open
- repository I'd just like you to open that in a tab so that you're in the same
- that in a tab so that you're in the same place that I am right here okay once you
- place that I am right here okay once you have that up you have the Repository
- have that up you have the Repository okay
- okay so once we have the code we should maybe
- so once we have the code we should maybe like look at what's actually in here a
- like look at what's actually in here a little bit you can see a sort of
- little bit you can see a sort of directory structure like you would find
- directory structure like you would find on your Windows or Apple computer
- on your Windows or Apple computer um where it sort of has files and
- um where it sort of has files and folders that are organized
- folders that are organized um within like a little tree structure
- um within like a little tree structure pretty traditional stuff
- pretty traditional stuff um this particular collection of files
- um this particular collection of files is everything necessary to build the
- is everything necessary to build the website and it's organized into what's
- website and it's organized into what's called a generically a framework a
- called a generically a framework a framework is just like a tool belt of
- framework is just like a tool belt of code that's been put together by other
- code that's been put together by other developers to make it easier to just get
- developers to make it easier to just get stuff done so Django which Simon
- stuff done so Django which Simon mentioned is what you might call a
- mentioned is what you might call a framework it's a bunch of python code
- framework it's a bunch of python code that does a million different things
- that does a million different things that make it easier to build a dynamic
- that make it easier to build a dynamic website as well as do other things
- website as well as do other things um you may have heard of other
- um you may have heard of other Frameworks called like Ruby on Rails or
- Frameworks called like Ruby on Rails or react or Gatsby and these are all just
- react or Gatsby and these are all just different sort of competing systems in
- different sort of competing systems in different programming languages to
- different programming languages to create uh you know tool belts that make
- create uh you know tool belts that make it easier to get stuff done and it just
- it easier to get stuff done and it just so happens it's not that important but
- so happens it's not that important but it just so happens that this repository
- it just so happens that this repository in this website uses a framework called
- in this website uses a framework called Baker which was invented at the Los
- Baker which was invented at the Los Angeles Times to help us build all of
- Angeles Times to help us build all of our special projects and so you know you
- our special projects and so you know you want to do live election results outside
- want to do live election results outside of the content management system or a
- of the content management system or a big long beautiful scrolling feature
- big long beautiful scrolling feature right you might need to write your own
- right you might need to write your own custom code and so Baker was the tool
- custom code and so Baker was the tool that we wrote to do that it's in use
- that we wrote to do that it's in use currently at the LA times as well as at
- currently at the LA times as well as at propublica the Baltimore banner and the
- propublica the Baltimore banner and the city uh if you're interested in learning
- city uh if you're interested in learning more about Baker we have a whole
- more about Baker we have a whole separate class about that which I taught
- separate class about that which I taught at the night car conference last year
- at the night car conference last year it's called first visual story and it
- it's called first visual story and it will guide you through how to use Baker
- will guide you through how to use Baker or really any uh sort of static site
- or really any uh sort of static site framework because it's called to build
- framework because it's called to build your own custom page that you can
- your own custom page that you can publish outside of the outside of the
- publish outside of the outside of the content management system where you work
- content management system where you work or just really your own micro site and
- or just really your own micro site and so because I was familiar with using
- so because I was familiar with using that at the LA Times I used it to make
- that at the LA Times I used it to make this little microsite cummings.ee and it
- this little microsite cummings.ee and it really can be used to make almost any
- really can be used to make almost any website if you used it properly so we
- website if you used it properly so we don't need to learn everything about how
- don't need to learn everything about how it works but you know one challenge of
- it works but you know one challenge of contributing to an open source project
- contributing to an open source project is even if you just want to correct a
- is even if you just want to correct a typo or add a very narrow feature or fix
- typo or add a very narrow feature or fix a small bug you do kind of have to go
- a small bug you do kind of have to go through the sort of like sussing out
- through the sort of like sussing out process of like how has this thing even
- process of like how has this thing even put together and where are all our other
- put together and where are all our other things and sort of gradually learning
- things and sort of gradually learning kind of the system by which the
- kind of the system by which the developers have put hello and welcome to
- developers have put hello and welcome to git and GitHub for poets this is
- git and GitHub for poets this is and
- and um
- um and uh and you can and so here we won't
- and uh and you can and so here we won't cover everything that has to do with it
- cover everything that has to do with it but I can just tell you that
- but I can just tell you that in the underscore data folder
- in the underscore data folder there's another folder called poems I
- there's another folder called poems I just ask everybody to click in here and
- just ask everybody to click in here and then into is five right and so I just
- then into is five right and so I just happen to know this is the place to go
- happen to know this is the place to go because I created this repository and so
- because I created this repository and so in the data directory there's a there's
- in the data directory there's a there's a there's a folder for each of the four
- a there's a folder for each of the four books that we've entered and then in
- books that we've entered and then in each of those there's a file for each of
- each of those there's a file for each of the poems right and so uh we could see
- the poems right and so uh we could see that for instance in the first file that
- that for instance in the first file that we're looking at which is for the the
- we're looking at which is for the the first poem and the five American series
- first poem and the five American series we could see a file that contains the
- we could see a file that contains the poem and some extra metadata if I go to
- poem and some extra metadata if I go to cummings.ee
- cummings.ee and I click into the location of that
- and I click into the location of that same poem here we can see that the exact
- same poem here we can see that the exact same stuff
- same stuff that's on the page is in that data file
- that's on the page is in that data file and the way that the website works which
- and the way that the website works which we won't cover in in any depth is it
- we won't cover in in any depth is it really it takes the data from these
- really it takes the data from these files and it templates them into the
- files and it templates them into the website and that's how this kind of site
- website and that's how this kind of site works it's using that particular
- works it's using that particular framework all of those things are just
- framework all of those things are just opinionated decisions I made as the
- opinionated decisions I made as the initial developer and are up for debate
- initial developer and are up for debate but you know part of figuring out or
- but you know part of figuring out or contributing to somebody else's code is
- contributing to somebody else's code is kind of like sniffing around how it's
- kind of like sniffing around how it's set up and figuring out what you might
- set up and figuring out what you might want to do or don't do like Simon when
- want to do or don't do like Simon when you first encounter someone else's code
- you first encounter someone else's code how do you figure out what it's doing
- how do you figure out what it's doing but it depends on which programming
- but it depends on which programming language they're using if it's a
- language they're using if it's a JavaScript thing there's a file called
- JavaScript thing there's a file called package.json you can go and look at if
- package.json you can go and look at if it's python you can look at
- it's python you can look at requirements.txt but generally I hope
- requirements.txt but generally I hope that they've got a readme that explains
- that they've got a readme that explains what's going on so the good projects do
- what's going on so the good projects do a lot of projects don't bother and then
- a lot of projects don't bother and then often what I'll do is I'll actually use
- often what I'll do is I'll actually use the GitHub search interface so I'll say
- the GitHub search interface so I'll say okay I know that there's a poem that
- okay I know that there's a poem that uses the word uses the the word sinuous
- uses the word uses the the word sinuous in there I will search for sinuous and
- in there I will search for sinuous and that will show me which file here we go
- that will show me which file here we go and so now I've gone from looking at the
- and so now I've gone from looking at the front page we're actually having an idea
- front page we're actually having an idea of how this thing is structured so often
- of how this thing is structured so often I I will I will use github's code search
- I I will I will use github's code search quite extensively just to try and figure
- quite extensively just to try and figure out okay this thing I want to this this
- out okay this thing I want to this this page on the website where is that in the
- page on the website where is that in the repository and that'll get me there
- repository and that'll get me there really quickly mm-hmm student
- really quickly mm-hmm student and then also if you're looking to
- and then also if you're looking to contribute a really natural place to
- contribute a really natural place to look is What's called the issue tracker
- look is What's called the issue tracker or the issues tab so if you see here in
- or the issues tab so if you see here in the upper left where my mouse is there's
- the upper left where my mouse is there's just a little link that says issue with
- just a little link that says issue with I guess a bullseye I'm not even sure I
- I guess a bullseye I'm not even sure I know what that is
- know what that is um and in it and this is like you know
- um and in it and this is like you know like you might have in your work uh
- like you might have in your work uh workplace if you work anywhere close to
- workplace if you work anywhere close to software this is sort of an open source
- software this is sort of an open source version of a classic ticket manager like
- version of a classic ticket manager like you might have um in jira or any other
- you might have um in jira or any other of those tools like that and it's really
- of those tools like that and it's really a place where the maintainers of a
- a place where the maintainers of a project but also the users
- project but also the users um can uh can raise bugs can propose
- um can uh can raise bugs can propose features can hold discussions about what
- features can hold discussions about what to do with the website and it is a venue
- to do with the website and it is a venue for kind of managing
- for kind of managing um little changes that get made to the
- um little changes that get made to the code over time right I'm going to set a
- code over time right I'm going to set a quick plug for GitHub issues if you've
- quick plug for GitHub issues if you've used Jerry you probably hate jira I I
- used Jerry you probably hate jira I I don't think I've ever met somebody who
- don't think I've ever met somebody who who didn't absolutely despise it it does
- who didn't absolutely despise it it does the job GitHub issues is the only issue
- the job GitHub issues is the only issue tracker I've used that I don't hate and
- tracker I've used that I don't hate and this is this is high price indeed I've
- this is this is high price indeed I've run my life out of it I've got like
- run my life out of it I've got like private GitHub repositories for
- private GitHub repositories for households chores and things that use
- households chores and things that use GitHub issues because it works so well
- GitHub issues because it works so well for me
- for me yeah it's pretty nice tool and just to
- yeah it's pretty nice tool and just to show it like on another project an open
- show it like on another project an open source project you've probably heard
- source project you've probably heard something about in the last few months
- something about in the last few months is Mastodon which is an attempt to
- is Mastodon which is an attempt to create an open source competitor to
- create an open source competitor to Twitter
- Twitter and you can see here this is of course a
- and you can see here this is of course a very active project that's been around a
- very active project that's been around a number of years and you see here if you
- number of years and you see here if you look in their issues tracker you'll see
- look in their issues tracker you'll see that there's more than 3 000 issues
- that there's more than 3 000 issues where people all around the world who
- where people all around the world who are surging into the site have been
- are surging into the site have been suggesting things I think I have one in
- suggesting things I think I have one in here if we search for me
- here if we search for me let's see if we can find it
- let's see if we can find it no how do you filter for person can I
- no how do you filter for person can I use a colon pale wire
- oh no that didn't work at all that's everything
- everything your issues how about that there we go
- if that worked no hmm I definitely filed a bug whatever oh I'm not logged in as
- a bug whatever oh I'm not logged in as me I'm logged in as this other weird guy
- me I'm logged in as this other weird guy there you go that makes sense
- there you go that makes sense ah
- ah so just to just to like make the point I
- so just to just to like make the point I was using Mastodon as I'm as I'm
- was using Mastodon as I'm as I'm exploring it like everyone else in the
- exploring it like everyone else in the world and uh I thought I found what I
- world and uh I thought I found what I thought to be a bug which was that um in
- thought to be a bug which was that um in the color choice that they had made for
- the color choice that they had made for kind of the toot button uh wasn't
- kind of the toot button uh wasn't passing a certain kind of accessibility
- passing a certain kind of accessibility test not that it was such a crime or
- test not that it was such a crime or whatever and so what I did is I went
- whatever and so what I did is I went into their issue tracker and I tried to
- into their issue tracker and I tried to document this bug right and so it was
- document this bug right and so it was just like hey I ran this kind of this
- just like hey I ran this kind of this one particular test for accessibility I
- one particular test for accessibility I found that uh the colors are you know
- found that uh the colors are you know totally up to Snuff uh I did an
- totally up to Snuff uh I did an experiment where maybe we could change
- experiment where maybe we could change it to something else it's within the
- it to something else it's within the color scheme and so hey what do you
- color scheme and so hey what do you think of that idea right and so this is
- think of that idea right and so this is basically me filing a bug report with
- basically me filing a bug report with the the owners of this repository and
- the the owners of this repository and just kind of seeing what they think
- just kind of seeing what they think trying to document what I was thinking
- trying to document what I was thinking so that you know they don't have to read
- so that you know they don't have to read my mind and you know somebody might get
- my mind and you know somebody might get around to it at some point I think this
- around to it at some point I think this particular group of developers is pretty
- particular group of developers is pretty flooded with activity and so I don't
- flooded with activity and so I don't really blame them for not having got to
- really blame them for not having got to it yet but that's an example of kind of
- it yet but that's an example of kind of a real life bug report that I made
- a real life bug report that I made myself right and then the pull request
- myself right and then the pull request or the change would be intended to
- or the change would be intended to address that right and so issues are
- address that right and so issues are often the targets of pull requests or
- often the targets of pull requests or code changes where you're saying well we
- code changes where you're saying well we have this particular issue that we want
- have this particular issue that we want to address I've got the code that's
- to address I've got the code that's intended to address it and those two
- intended to address it and those two things kind of go together and so if we
- things kind of go together and so if we look back at the cummings.ee
- look back at the cummings.ee issue tracker I've created a couple
- issue tracker I've created a couple dozen tickets right here for individual
- dozen tickets right here for individual poems that are missing from the website
- poems that are missing from the website right so if we look at the page for is
- right so if we look at the page for is five on cummings.ee we can see that only
- five on cummings.ee we can see that only 28 of the books 88 poems have been
- 28 of the books 88 poems have been entered there's 60 to go and the ones
- entered there's 60 to go and the ones that haven't been entered are grayed out
- that haven't been entered are grayed out in the table of contents right and what
- in the table of contents right and what I've done is I went through and picked
- I've done is I went through and picked about 20 that aren't very long and made
- about 20 that aren't very long and made tickets for each of them
- tickets for each of them and then in each ticket I included a
- and then in each ticket I included a link to the file in the file system
- link to the file in the file system where the where the poem should go and a
- where the where the poem should go and a link to the scan from the LA Public
- link to the scan from the LA Public Library where the poem it appears on the
- Library where the poem it appears on the page right and so what I'm now going to
- page right and so what I'm now going to ask is that we just kind of go through
- ask is that we just kind of go through everybody who's here as a participant
- everybody who's here as a participant and we kind of assign different people
- and we kind of assign different people tickets right and there actually is a
- tickets right and there actually is a system for doing this within
- system for doing this within um the issue tracker which I'll show
- um the issue tracker which I'll show with like I'll use Simon as my example
- with like I'll use Simon as my example Simon you're going to enter one right uh
- Simon you're going to enter one right uh definitely yep okay so I'm gonna go down
- definitely yep okay so I'm gonna go down to the one at the bottom and just start
- to the one at the bottom and just start there and I'm going to say supposing I
- there and I'm going to say supposing I dreamed this is going to be Simon's
- dreamed this is going to be Simon's assignment and um within the interface
- assignment and um within the interface of the ticket there's ways for tagging
- of the ticket there's ways for tagging things and grouping them and then
- things and grouping them and then there's also a way of assigning people
- there's also a way of assigning people to manage the uh ticket is that your
- to manage the uh ticket is that your username Simon no I don't think it's
- username Simon no I don't think it's going to let you because I'm not a
- going to let you because I'm not a current participant in this response
- current participant in this response tree that's annoying so okay
- it looks like you have to add people as maintainers so maybe the assigning
- maintainers so maybe the assigning function isn't quite going to work we
- function isn't quite going to work we can assign with comments instead yeah so
- can assign with comments instead yeah so I'm going to say Simon you want to take
- I'm going to say Simon you want to take this one and then here you can see
- this one and then here you can see there's kind of a comment thread that
- there's kind of a comment thread that referrals in the issues where you can
- referrals in the issues where you can have a discussion about what's going on
- have a discussion about what's going on so Simon's going to take that one
- so Simon's going to take that one um let me just call up our chat and we
- um let me just call up our chat and we have 10 folks in the chat I'm just going
- have 10 folks in the chat I'm just going to go through everybody and uh assign
- to go through everybody and uh assign each of you one to manage I won't tag
- each of you one to manage I won't tag you or do whatever we'll just I just
- you or do whatever we'll just I just want to make sure we don't have two
- want to make sure we don't have two people doing the same poem is all right
- people doing the same poem is all right and this is where the software can
- and this is where the software can really be helpful for divvying things up
- really be helpful for divvying things up so that you know people don't end up
- so that you know people don't end up repeating each other's work and so just
- repeating each other's work and so just looking at our class list Ron you're the
- looking at our class list Ron you're the next one on the list
- next one on the list Ron I'm gonna give you nobody wears a
- Ron I'm gonna give you nobody wears a yellow that's ticket number one eight
- yellow that's ticket number one eight two okay
- two okay all right
- all right next on the list is Adrian Adrian I'm
- next on the list is Adrian Adrian I'm gonna give you it is so long since my
- gonna give you it is so long since my heart has been with yours that's ticket
- heart has been with yours that's ticket number one eight three all right
- Archie Archie I'm gonna give you number one eight four which is if within
- one eight four which is if within tonight's erect if within tonight's
- tonight's erect if within tonight's erect goes to arkey at number 184
- erect goes to arkey at number 184 Jose you're going to get number 185
- Jose you're going to get number 185 which is I go to this window
- which is I go to this window Arky is number one eight five
- Arky is number one eight five that's Jose Jose's number 185 arky's
- that's Jose Jose's number 185 arky's number one eight four
- number one eight four Michael you're going to be number 186
- Michael you're going to be number 186 which is touching you I say it being
- which is touching you I say it being spring
- spring being one of the classic words in ee
- being one of the classic words in ee Comics poetry recurs Through The Years
- Comics poetry recurs Through The Years in many many poems touching you I say it
- in many many poems touching you I say it being spring goes to Michael
- being spring goes to Michael Sean you got number one eight seven
- Sean you got number one eight seven that's our touching Hearts slenderly
- that's our touching Hearts slenderly comprehend
- comprehend our touching Hearts slenderly comprehend
- our touching Hearts slenderly comprehend number 187 goes to Sean and then Tom
- number 187 goes to Sean and then Tom I've got you at number 189 with poets
- I've got you at number 189 with poets yegs and thirsties Poets yangs and
- yegs and thirsties Poets yangs and thirsties number 189 goes to Tom okay so
- thirsties number 189 goes to Tom okay so you can go in and you can leave a
- you can go in and you can leave a comment if you just want to mark it but
- comment if you just want to mark it but what I really ask you to do for instance
- what I really ask you to do for instance Tom is to go in here and open these two
- Tom is to go in here and open these two links into two different tabs so that
- links into two different tabs so that you have both the empty file and the uh
- you have both the empty file and the uh the poem you're gonna transcribe I'm
- the poem you're gonna transcribe I'm gonna give myself a poem
- gonna give myself a poem um
- um yes
- I'm going to go with reasoned irrefutable unastered
- irrefutable unastered all right which I hope is not how you
- all right which I hope is not how you feel after this class
- that's going to be assigned to me and just to kind of make the Point tickets
- just to kind of make the Point tickets can be assigned once you're associated
- can be assigned once you're associated with a repository there's kind of a
- with a repository there's kind of a process here for just like tagging
- process here for just like tagging people and sticking them in and now this
- people and sticking them in and now this ticket belongs to me right and there's a
- ticket belongs to me right and there's a whole set of buttons and things to do
- whole set of buttons and things to do all kinds of stuff with issues and to
- all kinds of stuff with issues and to manage them
- manage them all right
- all right so everybody's got their issue
- Okay cool so now we're almost ready to begin work there's just one more piece
- begin work there's just one more piece of jargony software we got to cover
- of jargony software we got to cover which is yaml okay so you yaml y-a-m-l
- which is yaml okay so you yaml y-a-m-l you can see it in the file extension of
- you can see it in the file extension of your poetry file Simon what's yaml
- yaml ain't a mock-up language or very there have been various acronyms over
- there have been various acronyms over time the most recent one is that
- time the most recent one is that right so yaml is it's it's a file format
- right so yaml is it's it's a file format it's an acronym and it's really just a
- it's an acronym and it's really just a data storage language that is used
- data storage language that is used across a lot of different programming
- across a lot of different programming domains in different places just to hold
- domains in different places just to hold data and it's so it's sort of like a
- data and it's so it's sort of like a single row in a spreadsheet is one way
- single row in a spreadsheet is one way to think about a yaml file it can do
- to think about a yaml file it can do more than that but that's one way to
- more than that but that's one way to think about it and each one of these
- think about it and each one of these yaml files contains all the metadata
- yaml files contains all the metadata necessary for an individual poem just to
- necessary for an individual poem just to refer back to the one we were looking at
- refer back to the one we were looking at initially you can see that the title of
- initially you can see that the title of the poem is there the first line of the
- the poem is there the first line of the poem is there which is in an index
- poem is there which is in an index Elsewhere on the site and then most
- Elsewhere on the site and then most importantly the content of the poem is
- importantly the content of the poem is in an attribute called text so the the
- in an attribute called text so the the the value that's before the colon is
- the value that's before the colon is like the name of the column or the name
- like the name of the column or the name of the the the the the key of the value
- of the the the the the key of the value and then following the colon is the
- and then following the colon is the value itself and you can see in our
- value itself and you can see in our documentation that yaml supports you
- documentation that yaml supports you know uh strings numbers and then lists
- know uh strings numbers and then lists and also nested uh objects as well and
- and also nested uh objects as well and so you can kind of use yaml to structure
- so you can kind of use yaml to structure kind of whatever you want right but in
- kind of whatever you want right but in the case of the Cummings ee repository
- the case of the Cummings ee repository it's intended to structure a poem right
- it's intended to structure a poem right so I sort of invented a very simple uh
- so I sort of invented a very simple uh set of metadata for storing those pumps
- set of metadata for storing those pumps and so our mission is going to be to
- and so our mission is going to be to edit the yaml file that you've been
- edit the yaml file that you've been assigned right and mine was
- assigned right and mine was uh this one to add that text attribute
- uh this one to add that text attribute and then to type in the poem all right
- and then to type in the poem all right so
- so let's do it Sean you raised your hand
- let's do it Sean you raised your hand what's up man
- what's up man I was just curious if you could mention
- I was just curious if you could mention what part of your code is parsing the
- what part of your code is parsing the yaml text strings and actually putting
- yaml text strings and actually putting them like turning them into HTML on the
- them like turning them into HTML on the website just for reference later I'd be
- website just for reference later I'd be curious of course so the underscore data
- curious of course so the underscore data folder in a baker project this is
- folder in a baker project this is something particular to Baker right so
- something particular to Baker right so in the baker framework any file that's
- in the baker framework any file that's put into the underscore data folder is
- put into the underscore data folder is parsed by the framework and converted
- parsed by the framework and converted into like an object that then can be put
- into like an object that then can be put onto the page you're making right and
- onto the page you're making right and there's it it's this the baker system
- there's it it's this the baker system uses the node.js programming language
- uses the node.js programming language and so the code that does this is not
- and so the code that does this is not even in our project it's like deep down
- even in our project it's like deep down in the bowels of Baker which is which is
- in the bowels of Baker which is which is itself an open source code repository on
- itself an open source code repository on the LA Times account right deep down
- the LA Times account right deep down within the code of this like toolkit is
- within the code of this like toolkit is something that knows to look in the
- something that knows to look in the underscore data folder and parse all of
- underscore data folder and parse all of the files right and it's smart enough to
- the files right and it's smart enough to parse comma separated files Json files a
- parse comma separated files Json files a couple other formats and yaml and so
- couple other formats and yaml and so basically Baker's set up to try to make
- basically Baker's set up to try to make your life easier right but it sort of
- your life easier right but it sort of assumes certain things to do that and so
- assumes certain things to do that and so it assumes that if you put a file into
- it assumes that if you put a file into the data folder you want it to be parsed
- the data folder you want it to be parsed and you want it to be available to be on
- and you want it to be available to be on the page and then
- the page and then the name of the file is then accessible
- the name of the file is then accessible when you make the template and so like
- when you make the template and so like I'd have to go back in my memory here
- I'd have to go back in my memory here but there's a layouts folder that has
- but there's a layouts folder that has all of the HTML templates and you can
- all of the HTML templates and you can see that there's for instance the book
- see that there's for instance the book detail page which is what corresponds to
- detail page which is what corresponds to this page on the website about is five
- this page on the website about is five and this page about tulips and chimneys
- and this page about tulips and chimneys all four of these pages are made with
- all four of these pages are made with the same template
- the same template and we see here in this template it's
- and we see here in this template it's quite complicated for dumb reasons
- quite complicated for dumb reasons because I'm not very good at coding you
- because I'm not very good at coding you can see that it's using templating tags
- can see that it's using templating tags to kind of print out the title of the
- to kind of print out the title of the book its description and then that table
- book its description and then that table of contents right and so that that data
- of contents right and so that that data is coming from the underscore data
- is coming from the underscore data folder if we look at the poem detail
- folder if we look at the poem detail page
- page which which makes the which takes the
- which which makes the which takes the yamifi makes the poem you can see that
- yamifi makes the poem you can see that here it's using a sort of little bit of
- here it's using a sort of little bit of template code to Loop through each line
- template code to Loop through each line of the poem and print it line by line
- of the poem and print it line by line um it's not just puking the text on the
- um it's not just puking the text on the page because there's some complicated
- page because there's some complicated styles that have to be done to maintain
- styles that have to be done to maintain the Integrity of EE Cummings unusual
- the Integrity of EE Cummings unusual typography
- typography um but basically the stuff you're doing
- um but basically the stuff you're doing is coming out kind of right here right
- is coming out kind of right here right and so the poem text which is that
- and so the poem text which is that attribute that we see in the yaml file
- attribute that we see in the yaml file is being parsed by a custom function
- is being parsed by a custom function that I've written and then each line in
- that I've written and then each line in it is being printed into the template
- it is being printed into the template does that answer your question Sean yeah
- does that answer your question Sean yeah thanks yep and there's a whole world
- thanks yep and there's a whole world here where these line numbers are used
- here where these line numbers are used to manage the custom indentations of EE
- to manage the custom indentations of EE Cummings which is quite a lot of fun
- Cummings which is quite a lot of fun um if you really are into CSS there's
- um if you really are into CSS there's some fun ways to contribute this is part
- some fun ways to contribute this is part of why I did this project uh like for
- of why I did this project uh like for instance this poem is sideways which is
- instance this poem is sideways which is actually how it was intended by EE
- actually how it was intended by EE Cummings and so we had to customize the
- Cummings and so we had to customize the CSS just for this page
- CSS just for this page um my favorite ticket in our issue
- um my favorite ticket in our issue tracker currently is about that poem
- tracker currently is about that poem which is called life hurl my because
- which is called life hurl my because it's actually a question of academic
- it's actually a question of academic dispute about whether the poem should be
- dispute about whether the poem should be rotated clockwise as it was done in the
- rotated clockwise as it was done in the first edition or counterclockwise as it
- first edition or counterclockwise as it was done in George fermage's
- was done in George fermage's um
- um George furman's complete poems
- George furman's complete poems um I currently have this ticket being
- um I currently have this ticket being reviewed by um George Webster who is
- reviewed by um George Webster who is America's leading EE Cummings scholar he
- America's leading EE Cummings scholar he believes that counterclockwise is
- believes that counterclockwise is correct and that because that is how EE
- correct and that because that is how EE Cummings initially intended it in his
- Cummings initially intended it in his personal notes
- personal notes um from the archives Scholars who've
- um from the archives Scholars who've been reviewed he's he's going to scan
- been reviewed he's he's going to scan that for me when he can find he actually
- that for me when he can find he actually has EE Cummings papers uh and so he will
- has EE Cummings papers uh and so he will he will try to scan that for me and we
- he will try to scan that for me and we will resolve the tickets so this is a
- will resolve the tickets so this is a fun ticket that's not about code it's
- fun ticket that's not about code it's about something silly but anyway
- about something silly but anyway what do you guys this is this and then
- what do you guys this is this and then you get philosophical which is like well
- you get philosophical which is like well should our website recreate what the
- should our website recreate what the first edition was
- first edition was Faithfully or should it recreate what EE
- Faithfully or should it recreate what EE Cummings intention was that was later
- Cummings intention was that was later restored by Scholars you know 60 70
- restored by Scholars you know 60 70 years later right I think the answer
- years later right I think the answer there is it has to expose all the bits
- there is it has to expose all the bits like if there's a poem with many
- like if there's a poem with many different variants the web page can just
- different variants the web page can just keep on scrolling
- keep on scrolling so you would say I should we should
- so you would say I should we should print it uh rotate it both ways I think
- print it uh rotate it both ways I think yeah I think the original way first and
- yeah I think the original way first and then the other way with copious
- then the other way with copious explanations and
- explanations and nitpicking about why why about why these
- nitpicking about why why about why these things are I I think the library of
- things are I I think the library of America tries to go with what the author
- America tries to go with what the author intended
- intended yeah and that's what the scholars tend
- yeah and that's what the scholars tend to like so that so I have right here
- to like so that so I have right here with me uh there's a there's a guy named
- with me uh there's a there's a guy named George fermage and so George furmers is
- George fermage and so George furmers is the guy who put together the what's
- the guy who put together the what's called complete poems which was is done
- called complete poems which was is done by um live right who still exists as a
- by um live right who still exists as a publisher who published the first
- publisher who published the first edition and um and his sort of
- edition and um and his sort of philosophy in putting the book together
- philosophy in putting the book together was to restore Cummings intent right but
- was to restore Cummings intent right but you could do better than that you can
- you could do better than that you can both have it coming and have all of the
- both have it coming and have all of the nitpicky academic debates afterwards I
- nitpicky academic debates afterwards I think that's right I'm kind of I I think
- think that's right I'm kind of I I think we have to have a philosophy for the
- we have to have a philosophy for the site which I have to deal with when I
- site which I have to deal with when I merge things but I think with I kind of
- merge things but I think with I kind of am leaning towards we go with the intent
- am leaning towards we go with the intent once it's resolved and then maybe we
- once it's resolved and then maybe we have a footnote that could link to this
- have a footnote that could link to this ticket or uh I don't know what but it's
- ticket or uh I don't know what but it's it's an interesting question it's an
- it's an interesting question it's an interesting question so that's that's my
- interesting question so that's that's my life as a maintainer uh thank you for
- life as a maintainer uh thank you for indulging me
- indulging me um and so where we left was we had
- um and so where we left was we had Sean's question about the template and
- Sean's question about the template and we got that handled and so I think we're
- we got that handled and so I think we're maybe ready to start actually editing
- maybe ready to start actually editing the code so everybody click that first
- the code so everybody click that first link in your ticket
- link in your ticket and get up
- and get up your kind of file which you're going to
- your kind of file which you're going to edit which should only have the title
- edit which should only have the title and the first line if it has the text
- and the first line if it has the text already I've made a mistake and we need
- already I've made a mistake and we need to find you another one just speak up
- to find you another one just speak up but
- but to kind of get back to what Ron was
- to kind of get back to what Ron was saying earlier I need to get this in my
- saying earlier I need to get this in my other browser hold on
- other browser hold on um the traditional way of doing get get
- um the traditional way of doing get get until the last few years was to make a
- until the last few years was to make a copy of the repository on your computer
- copy of the repository on your computer and to use your terminal to sort of
- and to use your terminal to sort of interact with the file right but now
- interact with the file right but now GitHub has some really powerful tools
- GitHub has some really powerful tools for making these edits directly in your
- for making these edits directly in your browser and since what we're doing is
- browser and since what we're doing is pretty simple we're going to do that and
- pretty simple we're going to do that and get you guys kind of like on the board
- get you guys kind of like on the board um without having to deal with all the
- um without having to deal with all the terminal crap and that really awesome
- terminal crap and that really awesome tool is kind of buried within github's
- tool is kind of buried within github's interface like you might not even know
- interface like you might not even know it's there right and what it is is it's
- it's there right and what it is is it's this pencil tool right here in the right
- this pencil tool right here in the right hand side the upper right of the file
- hand side the upper right of the file viewer you can hit that down arrow I
- viewer you can hit that down arrow I want everybody to hit that down arrow
- want everybody to hit that down arrow and just look at it
- and just look at it and GitHub actually offers two different
- and GitHub actually offers two different ways
- ways to edit your stuff in your browser if
- to edit your stuff in your browser if you pick the first option edit this file
- you pick the first option edit this file you'll get their kind of like Legacy
- you'll get their kind of like Legacy option that they developed a few years
- option that they developed a few years ago which is very nice right and it's
- ago which is very nice right and it's one way to edit the file in the browser
- one way to edit the file in the browser but below that you can see that there's
- but below that you can see that there's a link that says open in github.dev and
- a link that says open in github.dev and this is like the cool new thing that
- this is like the cool new thing that they are going to gradually replace the
- they are going to gradually replace the older stuff with that has a lot more
- older stuff with that has a lot more cool features and things to take
- cool features and things to take advantage of and so I'm going to ask
- advantage of and so I'm going to ask everybody to hit open in
- everybody to hit open in github.dev in that pull down
- github.dev in that pull down Simon you want to explain what this is
- Simon you want to explain what this is yeah this is um so Microsoft have an a
- yeah this is um so Microsoft have an a text editor so you can install your
- text editor so you can install your computer called vs code Visual Studio
- computer called vs code Visual Studio code and it's one of the best pieces of
- code and it's one of the best pieces of software they've released in years it's
- software they've released in years it's completely open source and this is it it
- completely open source and this is it it turns out it's written in JavaScript and
- turns out it's written in JavaScript and it can run in a browser just as well as
- it can run in a browser just as well as it runs on your computer so when you hit
- it runs on your computer so when you hit github.dev they're actually launching
- github.dev they're actually launching effectively the Leading Edge Microsoft
- effectively the Leading Edge Microsoft like code editing environment purely in
- like code editing environment purely in your browser for you to edit files
- your browser for you to edit files directly on GitHub this is a revelation
- directly on GitHub this is a revelation for me like I never thought I would
- for me like I never thought I would spend most more of my time in a browser
- spend most more of my time in a browser writing code than I would doing it on on
- writing code than I would doing it on on like a proper computer but actually no
- like a proper computer but actually no this is it's such a good editor it's so
- this is it's such a good editor it's so convenient you know it's a a click in
- convenient you know it's a a click in the menu to get there but I actually
- the menu to get there but I actually find myself using this for all kinds of
- find myself using this for all kinds of different projects now
- different projects now so yeah this is effectively I think this
- so yeah this is effectively I think this is best to breed um code editing
- is best to breed um code editing experience and it's freely available and
- experience and it's freely available and you just click a button and you browser
- you just click a button and you browser and off you go yeah and you could do
- and off you go yeah and you could do this on a Chromebook or even on your
- this on a Chromebook or even on your phone
- phone um and it makes these tools a lot more
- um and it makes these tools a lot more accessible to people too you don't need
- accessible to people too you don't need a two thousand dollar MacBook you know
- a two thousand dollar MacBook you know which I think is very important
- which I think is very important personally
- personally um
- um um so what I've done is I've opened up
- um so what I've done is I've opened up my poem you should see yours and then in
- my poem you should see yours and then in uh chapter six about editing the code I
- uh chapter six about editing the code I have a little snippet just to get you
- have a little snippet just to get you started and this is just intended to be
- started and this is just intended to be the like shell of where your text
- the like shell of where your text attribute is going to go you'll notice
- attribute is going to go you'll notice that there's this sort of little
- that there's this sort of little configuration bit here on this attribute
- configuration bit here on this attribute that's because unlike the other
- that's because unlike the other um values in our yaml file this is a
- um values in our yaml file this is a multi-line entry right so the poem is
- multi-line entry right so the poem is going to go over more than one line of
- going to go over more than one line of code and this is just one way of telling
- code and this is just one way of telling yaml that that's what's going to happen
- yaml that that's what's going to happen right and then the negative one tells it
- right and then the negative one tells it um each line will have one white space
- um each line will have one white space at the start of it that isn't part of
- at the start of it that isn't part of the column that's just there to let you
- the column that's just there to let you know that this is one kind of Chunk
- know that this is one kind of Chunk right and so you should just paste
- right and so you should just paste something that's like in here and then
- something that's like in here and then below it we just want to start typing
- below it we just want to start typing the poem right and so I'm going to
- the poem right and so I'm going to um
- um I'm going to get to the poem myself but
- I'm going to get to the poem myself but let me grab the link for my ticket so
- let me grab the link for my ticket so back in my ticket I have this other link
- back in my ticket I have this other link right
- right and I can go to
- and I can go to um
- um that page
- that page and what I'm going to do is just do a
- and what I'm going to do is just do a split screen which you know this is
- split screen which you know this is obviously a matter of taste or whatever
- obviously a matter of taste or whatever different people like to do things
- different people like to do things different ways but I'm going to
- different ways but I'm going to um split my screen and I could see here
- um split my screen and I could see here on the right hand side of this page is
- on the right hand side of this page is the poem that I need to type
- the poem that I need to type and so I'm just going to type it in and
- and so I'm just going to type it in and so this is maybe going to take us all
- so this is maybe going to take us all depending on how long your poem is you
- depending on how long your poem is you know five to ten minutes and so I just
- know five to ten minutes and so I just asked everybody to kind of do their best
- asked everybody to kind of do their best to transcribe what they see on the page
- to transcribe what they see on the page okay so I'm just going to shut up for a
- okay so I'm just going to shut up for a minute and do that
- and you go ahead and do yours too if you have any
- if you have any Adrian what's up
- Adrian what's up um just just want to confirm the we are
- um just just want to confirm the we are retyping the first line like because
- retyping the first line like because there's the first line attribute and
- there's the first line attribute and then but in the text where you want the
- then but in the text where you want the first line to start with the first line
- first line to start with the first line that's correct yeah and the first line
- that's correct yeah and the first line attribute is there so that I could make
- attribute is there so that I could make um
- um I can make this page on the website
- I can make this page on the website which is a common type of index for
- which is a common type of index for poetry if you've ever seen it you know
- poetry if you've ever seen it you know yeah I got you just wanted to make sure
- yeah I got you just wanted to make sure yep okay how do I get back to the book
- yep okay how do I get back to the book oh so in your ticket run there's a link
- oh so in your ticket run there's a link the second link in your ticket
- the second link in your ticket um which poem is yours
- um which poem is yours uh yellow ah
- uh yellow ah so for instance uh nobody wears a yellow
- so for instance uh nobody wears a yellow we can see the link is right here
- we can see the link is right here which I'm gonna try to drop in the chat
- which I'm gonna try to drop in the chat and see how I do okay
- so Ron there's your link all right okay I'll just go back to the issue okay
- okay I'll just go back to the issue okay awesome
- awesome all right
- can you tell that when EE Cummings wrote these uh typewriters were the cool new
- these uh typewriters were the cool new thing
- I don't think we would have these poems if they'd never invented the typewriter
- if they'd never invented the typewriter thank you
- and you know obviously the punctuation is inaccurate to uh according to your
- is inaccurate to uh according to your copy desk or your sixth grade English
- copy desk or your sixth grade English teacher but that is intentional on the
- teacher but that is intentional on the poet's part so we should just try to
- poet's part so we should just try to um mirror as closely as we can what he's
- um mirror as closely as we can what he's up to
- still makes me laugh sometimes these were of course many of these were
- these were of course many of these were intended as a gag EE Cummings was a
- intended as a gag EE Cummings was a goofball especially when he was young
- goofball especially when he was young if you're if you don't like the Poetry
- if you're if you don't like the Poetry you might be interested in his Memoir he
- you might be interested in his Memoir he wrote after coming back home from World
- wrote after coming back home from World War one which recently entered the
- War one which recently entered the public domain and has been republished
- public domain and has been republished by the New York Review of Books
- by the New York Review of Books um it's called the enormous room and
- um it's called the enormous room and it's about being a prisoner of war in
- it's about being a prisoner of war in France but he mostly plays it for Laughs
- France but he mostly plays it for Laughs uh and it's sort of a young man sort of
- uh and it's sort of a young man sort of mockingly um
- mockingly um describing his encounter with the
- describing his encounter with the bureaucracy of War
- I have proofed mine twice and I'm somewhat confident in uh my my work
- somewhat confident in uh my my work ultimately all submissions will be
- ultimately all submissions will be proved against the Furbish by yours
- proved against the Furbish by yours truly
- I'm going to give everybody two or three more minutes if you need more time than
- more minutes if you need more time than that it's totally fine just speak up but
- that it's totally fine just speak up but I'm going to say in two or three minutes
- I'm going to say in two or three minutes we'll we'll uh we'll move on
- we'll we'll uh we'll move on I have a couple quick questions yes
- I have a couple quick questions yes um one I was wondering if we all should
- um one I was wondering if we all should be using that like pipe minus one
- be using that like pipe minus one notation or that's particularly just
- notation or that's particularly just your poem that you were doing everyone
- your poem that you were doing everyone should put that in there
- should put that in there um because that's because the pipe tells
- um because that's because the pipe tells the yaml that this will be a multi-line
- the yaml that this will be a multi-line string right that it's going to go oh I
- string right that it's going to go oh I see more than one line of text so it
- see more than one line of text so it knows how to parse it and then the
- knows how to parse it and then the negative one is a configuration option
- negative one is a configuration option that tells that there will be one white
- that tells that there will be one white space at the start of each row right if
- space at the start of each row right if you don't get this perfectly right
- you don't get this perfectly right that's something we would litigate in
- that's something we would litigate in the pull request which we'll see in a
- the pull request which we'll see in a minute right but that's the that's the
- minute right but that's the that's the intent of how I've configured the yaml
- intent of how I've configured the yaml file I admit it's a little Annoying and
- file I admit it's a little Annoying and in that case we should all we should
- in that case we should all we should also have a white space at the beginning
- also have a white space at the beginning of each yes each I should have a single
- of each yes each I should have a single white space and what you'll find in vs
- white space and what you'll find in vs code is that once you start doing that
- code is that once you start doing that every time you hit enter it will do it
- every time you hit enter it will do it for you automatically it's sort of a
- for you automatically it's sort of a smart enough to figure that out
- smart enough to figure that out my other question was
- my other question was um I don't know maybe now that I added
- um I don't know maybe now that I added this it's not doing anymore but
- this it's not doing anymore but originally there was a colon in the poem
- originally there was a colon in the poem and the colon seemed to be telling the
- and the colon seemed to be telling the code editor that I was
- code editor that I was giving some other like yaml yes
- giving some other like yaml yes configuration yeah so colons are kind of
- configuration yeah so colons are kind of reserved for use in parsing the ammo
- reserved for use in parsing the ammo right we see that after each of our guys
- right we see that after each of our guys I think that if you see I have a colon
- I think that if you see I have a colon in my poem here I think that if it
- in my poem here I think that if it follows the pipe and the negative one
- follows the pipe and the negative one it'll chill out and be okay with that
- it'll chill out and be okay with that once I added the white space in front of
- once I added the white space in front of the line then the the text editor
- the line then the the text editor stopped highlighting it so I think that
- stopped highlighting it so I think that it's probably that's exactly what
- it's probably that's exactly what happened I bet right because because you
- happened I bet right because because you know even though this is sort of like
- know even though this is sort of like Arcane and like who knows what this is
- Arcane and like who knows what this is it's sort of giving instructions right
- it's sort of giving instructions right for like this is how you're supposed to
- for like this is how you're supposed to parse me
- hey Ben um quick typographical question that I'm
- um quick typographical question that I'm running into
- running into um now that I realize I do most of my
- um now that I realize I do most of my writing in Google Docs and it it auto
- writing in Google Docs and it it auto corrects the mdash when I do the two
- corrects the mdash when I do the two regular dashes and there are a couple in
- regular dashes and there are a couple in my poem and I actually don't know how to
- my poem and I actually don't know how to do the empty I don't know if this is I
- do the empty I don't know if this is I can Google it I guess really quick but
- can Google it I guess really quick but I'm like kind of like M dashes are
- I'm like kind of like M dashes are tricky famously you know journalists
- tricky famously you know journalists love them you know what am I one of my
- love them you know what am I one of my favorite things
- favorite things um working at the LA Times is like
- um working at the LA Times is like getting to like deal with all the old
- getting to like deal with all the old newspaper technology and I I once found
- newspaper technology and I I once found the coyote computer system the first
- the coyote computer system the first computers that were run at the LA Times
- computers that were run at the LA Times and they had a special key just for
- and they had a special key just for mdashes so that's how much journalists
- mdashes so that's how much journalists love the mdash that's incredible so
- love the mdash that's incredible so there's different ways to do it on
- there's different ways to do it on different operating systems
- different operating systems um you know the easy lazy way is just to
- um you know the easy lazy way is just to Google it and then copy and paste it
- Google it and then copy and paste it yeah that's what I'm gonna do but since
- yeah that's what I'm gonna do but since you've asked you've allowed me to bring
- you've asked you've allowed me to bring up one of my favorite hobby horses you
- up one of my favorite hobby horses you guys may tell that I like stupid weird
- guys may tell that I like stupid weird uh type type things so I think one of
- uh type type things so I think one of the great failures of Simon and the
- the great failures of Simon and the Silicon Valley crowd is that they have
- Silicon Valley crowd is that they have abandoned the compose key so the compose
- abandoned the compose key so the compose key was once a commonly found uh key on
- key was once a commonly found uh key on where the right ALT key is on your
- where the right ALT key is on your computer or in other common locations on
- computer or in other common locations on a keyboard and it was effectively you
- a keyboard and it was effectively you would you would type that and then you
- would you would type that and then you would you'd hit that key and then you
- would you'd hit that key and then you would enter a pattern and it would give
- would enter a pattern and it would give you uh more Arcane characters more
- you uh more Arcane characters more quickly and it used it uses a pneumatic
- quickly and it used it uses a pneumatic device where you would hit compose key
- device where you would hit compose key then say a tick and an A and you would
- then say a tick and an A and you would get the tick over the A and if you did a
- get the tick over the A and if you did a tick and an e you get the tick over the
- tick and an e you get the tick over the E and if you did compose and three
- E and if you did compose and three hyphens you got an mdash right and so
- hyphens you got an mdash right and so one thing that I've done this is another
- one thing that I've done this is another pandemic Splurge is I bought myself a
- pandemic Splurge is I bought myself a custom keyboard and I put a goddamn
- custom keyboard and I put a goddamn compose key on it and Linux actually
- compose key on it and Linux actually supports a compose key so if you're
- supports a compose key so if you're smart if you're wise enough to use Linux
- smart if you're wise enough to use Linux uh The Gnome operating system will
- uh The Gnome operating system will support a compose key and you hold your
- support a compose key and you hold your keyboard up to the web cameras
- keyboard up to the web cameras everything too tight it's going to be
- everything too tight it's going to be filthy but yeah it's in the right alt
- filthy but yeah it's in the right alt position I've got the custom keycap dude
- position I've got the custom keycap dude because the other thing about the
- because the other thing about the compose key is that it has a beautiful
- compose key is that it has a beautiful Unicode symbol that is actually like
- Unicode symbol that is actually like super heavy metal guys like this is the
- super heavy metal guys like this is the symbol of the compose key like how heavy
- symbol of the compose key like how heavy metal is that
- metal is that the circle and square that could be a
- the circle and square that could be a tattoo right and in fact it's a t-shirt
- tattoo right and in fact it's a t-shirt on my Etsy shop
- on my Etsy shop right so if you really want to get into
- right so if you really want to get into that I like on my Etsy page
- that I like on my Etsy page there's a compose key t-shirt so long
- there's a compose key t-shirt so long live the compose key
- live the compose key Silicon Valley you've let us down yet
- Silicon Valley you've let us down yet again
- again anyway I can't find it now it's there
- anyway I can't find it now it's there in that today yeah that would have been
- in that today yeah that would have been that would have been pretty cool I'm on
- that would have been pretty cool I'm on a I'm on Ubuntu so maybe I'll I'll um
- a I'm on Ubuntu so maybe I'll I'll um I'll have it hack it into having my
- I'll have it hack it into having my right right all key I can probably
- right right all key I can probably that's the way to do it I think it's in
- that's the way to do it I think it's in the gnome settings
- the gnome settings are your keyboard settings maybe
- are your keyboard settings maybe compose key right there see it yeah yeah
- compose key right there see it yeah yeah there you go okay
- there you go okay cool cool
- cool cool I learned something new every day
- I learned something new every day thank you for letting me tell that story
- thing I bought during the pandemic is that tool to remove keycaps like this is
- that tool to remove keycaps like this is the special tool that's just for pulling
- the special tool that's just for pulling out keycaps I'm I should not admit this
- out keycaps I'm I should not admit this but I did buy that
- but I did buy that all right so has everybody gotten their
- all right so has everybody gotten their poem in I know some of them are longer
- poem in I know some of them are longer than others
- than others what's that
- I know you love EE Cummings but he's driving my copy editor heart crazy he
- driving my copy editor heart crazy he would have loved that Ron
- especially when he was young he got kind of grumpy when he got old if you ever
- of grumpy when he got old if you ever read about him he was the kind of
- read about him he was the kind of classic modernist really you know these
- classic modernist really you know these are young bright
- are young bright um people who were kind of damaged by
- um people who were kind of damaged by the war and that's what a lot of their
- the war and that's what a lot of their art is about you know Ezra pound or
- art is about you know Ezra pound or Gertrude Stein or Ernest Hemingway would
- Gertrude Stein or Ernest Hemingway would be other examples
- be other examples and uh Cummings is one who unlike a lot
- and uh Cummings is one who unlike a lot of the more liberal Greenwich Village
- of the more liberal Greenwich Village types
- types um became uh anti-communist where many
- um became uh anti-communist where many of them became pro-communist and so the
- of them became pro-communist and so the 1930s for a lot of these uh literary
- 1930s for a lot of these uh literary characters at the time were really a
- characters at the time were really a conflict between Warren camps and their
- conflict between Warren camps and their position toward the Soviet Union
- position toward the Soviet Union Cummings made a trip to the Soviet Union
- Cummings made a trip to the Soviet Union which he also wrote about and became a
- which he also wrote about and became a pretty uh virulent uh anti-soviet
- pretty uh virulent uh anti-soviet uh anyway
- uh anyway foreign
- foreign so we got it in
- love it all right so now that we have it in we have this in the text editor but
- in we have this in the text editor but like how do we get this back into the
- like how do we get this back into the actual repository right and so this is
- actual repository right and so this is where if you're on your terminal you
- where if you're on your terminal you would have to save the file and type
- would have to save the file and type these insane git commands that like tell
- these insane git commands that like tell it how to do that but because github.dev
- it how to do that but because github.dev is so great we can now do that stuff
- is so great we can now do that stuff just by clicking a couple buttons right
- just by clicking a couple buttons right and you can see here on the left hand
- and you can see here on the left hand side of my text editor we have a little
- side of my text editor we have a little icon that kind of looks like a tree
- icon that kind of looks like a tree right or like a branch coming off with
- right or like a branch coming off with dots and lines and it's got a blue
- dots and lines and it's got a blue circle on it right and that's like a
- circle on it right and that's like a little notification thing and this is
- little notification thing and this is the commit dialogue or the source
- the commit dialogue or the source control dialog which allows you to log
- control dialog which allows you to log your changes that you're making to the
- your changes that you're making to the code and so this is another like techie
- code and so this is another like techie concept of code repositories is that
- concept of code repositories is that every time you make a change into the
- every time you make a change into the Version Control System you have to make
- Version Control System you have to make a log entry you have to say I'm going to
- a log entry you have to say I'm going to change these lines of code right and
- change these lines of code right and that's going to be stored as like a
- that's going to be stored as like a little transaction and then then also
- little transaction and then then also you typically will if you're doing a
- you typically will if you're doing a good job you'll provide a description of
- good job you'll provide a description of what you've done and then that
- what you've done and then that description is stored along with the
- description is stored along with the change and that little bundle of
- change and that little bundle of information or that transaction is
- information or that transaction is called a commit or a code commit right
- called a commit or a code commit right and
- and um and so what you typically do is is
- um and so what you typically do is is you after you make a change you then
- you after you make a change you then write a message and then log it with the
- write a message and then log it with the code commit and the way you can do that
- code commit and the way you can do that in vs code or GitHub Dev is by clicking
- in vs code or GitHub Dev is by clicking that little tree button right so you get
- that little tree button right so you get that thing you can see here it even
- that thing you can see here it even provides a list of the changes you've
- provides a list of the changes you've made and if I clicked on it I get What's
- made and if I clicked on it I get What's called the diff right so it's showing
- called the diff right so it's showing here on the left here's what the file
- here on the left here's what the file looked like before you made the change
- looked like before you made the change here's the diff or the change that you
- here's the diff or the change that you made on the right so you can look at
- made on the right so you can look at that it's often a good idea to do this
- that it's often a good idea to do this before you commit because you might
- before you commit because you might accidentally change more than one file I
- accidentally change more than one file I do that like every day right or you
- do that like every day right or you might have changed something made a typo
- might have changed something made a typo that you didn't intend and this can
- that you didn't intend and this can really highlight that change right so I
- really highlight that change right so I see here no I think I I pretty much got
- see here no I think I I pretty much got what I want I'm feeling good about my
- what I want I'm feeling good about my diff
- diff and so then then the final thing to do
- and so then then the final thing to do is to then go to this text box in the
- is to then go to this text box in the upper left and to write that line to
- upper left and to write that line to describe what you were doing right and
- describe what you were doing right and so I'm gonna and like this is always
- so I'm gonna and like this is always this sort of creative challenge like
- this sort of creative challenge like what did I do you know what I mean and
- what did I do you know what I mean and it's a good thought exercise to see if
- it's a good thought exercise to see if you can really summarize it in this case
- you can really summarize it in this case it's really just gonna I'm gonna say I
- it's really just gonna I'm gonna say I entered the name of this poem so I'm
- entered the name of this poem so I'm just going to copy and paste that so I
- just going to copy and paste that so I entered this guy
- entered this guy and that would be enough I think to have
- and that would be enough I think to have a good code commit message but there's
- a good code commit message but there's an extra piece of sugar that you could
- an extra piece of sugar that you could do on GitHub which is you can link your
- do on GitHub which is you can link your code commit to the issue that you're
- code commit to the issue that you're talking about so that those two things
- talking about so that those two things are joined together on the website and
- are joined together on the website and the way you do that
- the way you do that and I'd encourage you all to do this is
- and I'd encourage you all to do this is you then go back to the issue and I
- you then go back to the issue and I almost always have to go back and look
- almost always have to go back and look because I can't remember but if I go
- because I can't remember but if I go back and look I can see reasoned
- back and look I can see reasoned irrefutable unastonished was ticket
- irrefutable unastonished was ticket number 190. do you see that up there
- number 190. do you see that up there so that's the number of my ticket and so
- so that's the number of my ticket and so then over here in the editor I'm going
- then over here in the editor I'm going to say
- to say fixes hash 190 and you see it's even
- fixes hash 190 and you see it's even Auto completing for me right because
- Auto completing for me right because it's connected to GitHub pretty cool
- it's connected to GitHub pretty cool right and so then I'm going to say fixes
- right and so then I'm going to say fixes number 190 fix is this kind of a magic
- number 190 fix is this kind of a magic word
- word which tells GitHub that if this code
- which tells GitHub that if this code commit is accepted into the repository
- commit is accepted into the repository you can close the ticket automatically a
- you can close the ticket automatically a human doesn't even have to go to close
- human doesn't even have to go to close it it'll do it for you it's kind of nice
- it it'll do it for you it's kind of nice right you don't have to you could just
- right you don't have to you could just put the number and that would still make
- put the number and that would still make the link right but I think this will fix
- the link right but I think this will fix the ticket so I'm just going to put
- the ticket so I'm just going to put fixes
- fixes and then so everybody do that put in
- and then so everybody do that put in your description and try to tag your
- your description and try to tag your issue and then hit this blue button
- issue and then hit this blue button commit and push
- commit and push okay then you're going to get this
- okay then you're going to get this pop-up and we're going to wait for a
- pop-up and we're going to wait for a second and then I'll explain what this
- second and then I'll explain what this pop-up is but I'm going to give
- pop-up is but I'm going to give everybody a chance just to write their
- everybody a chance just to write their message and hit the button
- sorry Ben can you just explain how so I've got my my tech uh the yaml file
- I've got my my tech uh the yaml file there so if I how do I find uh how to
- there so if I how do I find uh how to commit it's a little tricky at first
- commit it's a little tricky at first because it's it's part of the odd
- because it's it's part of the odd interface of the text editor but do you
- interface of the text editor but do you see on the left hand side there's a
- see on the left hand side there's a black bar that's up against the edge of
- black bar that's up against the edge of the window
- the window yeah the fourth icon down does it have
- yeah the fourth icon down does it have like a little blue little blue pop-up
- like a little blue little blue pop-up yeah so that click that icon and that's
- yeah so that click that icon and that's that's the source control Tab and so
- that's the source control Tab and so that's a tab within vs code that
- that's a tab within vs code that actually this is what makes vs code so
- actually this is what makes vs code so popular is that the text editor is
- popular is that the text editor is actually integrated with the version
- actually integrated with the version control system for you and so you can
- control system for you and so you can use it to make changes to code without
- use it to make changes to code without having to go into your terminal or to
- having to go into your terminal or to talk to git and GitHub it will do it on
- talk to git and GitHub it will do it on your behalf right and so by clicking
- your behalf right and so by clicking that you then get a new
- that you then get a new um box should open up from the left and
- um box should open up from the left and then in that upper left text box that's
- then in that upper left text box that's where you type your your commit message
- where you type your your commit message and then hit the blue button
- and then hit the blue button yep and you'll get to this pop-up and
- yep and you'll get to this pop-up and then we'll deal with that in a second
- okay I I didn't get to a pop-up I'm just getting kind of a loading
- getting kind of a loading animation I don't know maybe I need to
- animation I don't know maybe I need to when you hit commit and push yeah
- when you hit commit and push yeah you might try clicking it again that's
- you might try clicking it again that's probably a web connection bug would be
- probably a web connection bug would be my guess you know because all this is
- my guess you know because all this is happening over the internet
- happening over the internet I'm I'm getting a similar thing but what
- I'm I'm getting a similar thing but what happened is a little window popped up
- happened is a little window popped up that I'm supposed to type a name of a
- that I'm supposed to type a name of a branch into that's what's going to come
- branch into that's what's going to come next after this so did you already hit
- next after this so did you already hit the fork repository button no I just
- the fork repository button no I just clicked commit and push and it went
- clicked commit and push and it went right to that
- right to that um well for some reason you didn't get
- um well for some reason you didn't get this pop-up but you're on the next step
- this pop-up but you're on the next step and so if you're on the next step you're
- and so if you're on the next step you're okay right so basically just to return
- okay right so basically just to return to kind of one of our initial principles
- to kind of one of our initial principles we can't commit our code directly to my
- we can't commit our code directly to my repository or you can't because you
- repository or you can't because you don't have authority right I can't let
- don't have authority right I can't let anybody change my code and so how do you
- anybody change my code and so how do you get around that well the way GitHub does
- get around that well the way GitHub does does it is it has you create a copy of
- does it is it has you create a copy of my repository that you own and that
- my repository that you own and that you're allowed to do whatever you want
- you're allowed to do whatever you want with right and that's called a fork
- with right and that's called a fork right so a fork is your personal copy of
- right so a fork is your personal copy of somebody else's code and because it's
- somebody else's code and because it's open source you can do whatever you want
- open source you can do whatever you want within certain limits but you can't
- within certain limits but you can't change the website right because it's my
- change the website right because it's my version of the code that's connected to
- version of the code that's connected to the website through a whole other set of
- the website through a whole other set of technology and so the forks are the the
- technology and so the forks are the the sort of um standard GitHub way of
- sort of um standard GitHub way of managing uh making changes to code and
- managing uh making changes to code and then proposing they'd be accepted back
- then proposing they'd be accepted back in the original repository it's just
- in the original repository it's just like a little cycle right you edit the
- like a little cycle right you edit the code you save it in your fork and then
- code you save it in your fork and then the pull request is asking the owner of
- the pull request is asking the owner of the original to accept the change that
- the original to accept the change that lives in your fork right but because
- lives in your fork right but because this is your first commit you don't have
- this is your first commit you don't have a fork yet right and so an initial step
- a fork yet right and so an initial step that GitHub is going to take here is
- that GitHub is going to take here is it's going to say well you're trying to
- it's going to say well you're trying to make changes I'm reading right from the
- make changes I'm reading right from the box now right you're trying to make
- box now right you're trying to make changes to a project you don't have
- changes to a project you don't have right access to AKA you can't write to
- right access to AKA you can't write to the repository right do you want to
- the repository right do you want to create a fork in this project to commit
- create a fork in this project to commit your proposed changes and my answer is
- your proposed changes and my answer is yes so I'm going to hit the blue button
- yes so I'm going to hit the blue button everybody else should hit the blue
- everybody else should hit the blue button too
- button too and then that's going to go about
- and then that's going to go about creating a fork and and this is where it
- creating a fork and and this is where it starts to get a little Arcane but you
- starts to get a little Arcane but you can see at the very top here there's a
- can see at the very top here there's a pop-up box right and it's basically
- pop-up box right and it's basically asking you to create a branch on your
- asking you to create a branch on your fork So within repositories there could
- fork So within repositories there could be different copies of the code that
- be different copies of the code that sort of break off from each other so
- sort of break off from each other so let's say you own the repository and you
- let's say you own the repository and you want to work on a feature but you you
- want to work on a feature but you you don't want to have that go live as
- don't want to have that go live as you're working on it you want to be able
- you're working on it you want to be able to make commits and then after a certain
- to make commits and then after a certain amount of time send that back into the
- amount of time send that back into the main line of code you do that by what's
- main line of code you do that by what's making called a branch right and a
- making called a branch right and a branch is really like a mini Fork it's
- branch is really like a mini Fork it's like a fork that's within the repository
- like a fork that's within the repository right rather than like a whole separate
- right rather than like a whole separate repository and this is a little
- repository and this is a little confusing but basically you know when
- confusing but basically you know when you have right access to a repository
- you have right access to a repository you traditionally create branches
- you traditionally create branches that that you'll then send back for a
- that that you'll then send back for a merge and so github's default behavior
- merge and so github's default behavior is when you make a commit is to say well
- is when you make a commit is to say well you want to branch that off where you
- you want to branch that off where you want to Branch it and they just see that
- want to Branch it and they just see that as sort of a hygienic and kind of
- as sort of a hygienic and kind of professional default setting so that
- professional default setting so that people aren't just like ramming code
- people aren't just like ramming code into their Master Branch without
- into their Master Branch without thinking about it too much right it's a
- thinking about it too much right it's a little Annoying it might not be
- little Annoying it might not be necessary in this case and um but this
- necessary in this case and um but this is how it's set up and so here's the
- is how it's set up and so here's the thing the the reason it's so useful here
- thing the the reason it's so useful here is that a pull request is actually about
- is that a pull request is actually about um the changes in my Branch here are the
- um the changes in my Branch here are the ones that I'm proposing so it is good
- ones that I'm proposing so it is good practice if you're working on lots of
- practice if you're working on lots of different things that will be pull
- different things that will be pull requests you want each of those things
- requests you want each of those things to be in a different branch so yeah it's
- to be in a different branch so yeah it's a bit of a weird esoteric thing but for
- a bit of a weird esoteric thing but for this particular
- this particular um exercise that we're doing here it's
- um exercise that we're doing here it's actually it's a really useful default
- actually it's a really useful default yeah and so some people will get serious
- yeah and so some people will get serious about their Branch names and they might
- about their Branch names and they might put the ticket number in the branch name
- put the ticket number in the branch name or a descriptive thing but in our case
- or a descriptive thing but in our case we're just going to accept the default
- we're just going to accept the default which is patch one because it's your
- which is patch one because it's your first patch another piece of jargon a
- first patch another piece of jargon a patch is really just like code that you
- patch is really just like code that you want to change right here's the change
- want to change right here's the change that's the patch right and so I'm just
- that's the patch right and so I'm just going to click into that box and as the
- going to click into that box and as the instructions say I'm going to hit enter
- instructions say I'm going to hit enter right and then it's going to say hey
- right and then it's going to say hey you've committed changes to your fork do
- you've committed changes to your fork do you want to switch to your fork and
- you want to switch to your fork and continue making changes say yes I want
- continue making changes say yes I want to switch to my Fork
- to switch to my Fork I can't imagine what would happen if you
- I can't imagine what would happen if you said no to that I think things would get
- said no to that I think things would get very confusing yeah and so now we've
- very confusing yeah and so now we've moved over to the editor has now moved
- moved over to the editor has now moved and you can see that the URL if you look
- and you can see that the URL if you look at it carefully is no longer pale wire
- at it carefully is no longer pale wire me slash cummings.e it's first PR
- me slash cummings.e it's first PR cummings.e because that's the name of my
- cummings.e because that's the name of my user and so you're probably going to see
- user and so you're probably going to see your username in this spot in the URL as
- your username in this spot in the URL as well
- well did that work for everyone
- cool so now back on GitHub you have your own copy of the repository that's been
- own copy of the repository that's been created and to make our pull requests we
- created and to make our pull requests we need to go there and interact with it
- need to go there and interact with it and so this is a little clunky as well
- and so this is a little clunky as well but if you hit the menu box in the the
- but if you hit the menu box in the the menu line the three lines at the LA
- menu line the three lines at the LA times we call this the hamburger if you
- times we call this the hamburger if you hit the uh the hamburger icon in the
- hit the uh the hamburger icon in the upper left you can see that there's a
- upper left you can see that there's a link at the bottom called go to
- link at the bottom called go to repository does everybody see that
- repository does everybody see that oh
- go ahead and hit that guy and then in another tab it's just we're going to be
- another tab it's just we're going to be right back at a repo but we'll see in
- right back at a repo but we'll see in the upper left hand corner it's it's got
- the upper left hand corner it's it's got the Little Fork icon and it's first PR
- the Little Fork icon and it's first PR now right and it says below forked from
- now right and it says below forked from pale wire and so this is a copy of
- pale wire and so this is a copy of repository that you now own and have
- repository that you now own and have right access to that contains the branch
- right access to that contains the branch patch one that has your poem right and
- patch one that has your poem right and so in your repo the poem has been
- so in your repo the poem has been entered but since it's not in the
- entered but since it's not in the original Repository
- original Repository it's uh it's not on the site yet and so
- it's uh it's not on the site yet and so this is kind of the final step of your
- this is kind of the final step of your like secular your journey is to then say
- like secular your journey is to then say I'm gonna propose to the maintainer of
- I'm gonna propose to the maintainer of the original repository to accept my
- the original repository to accept my patch as a pull request how about all
- patch as a pull request how about all that jargon right and you can see that
- that jargon right and you can see that GitHub knows this is what people do and
- GitHub knows this is what people do and so they've even put a little pop-up
- so they've even put a little pop-up yellow box at the top where they're
- yellow box at the top where they're saying hey somebody pushed to this patch
- saying hey somebody pushed to this patch just one minute ago
- just one minute ago would you want to compare and make a
- would you want to compare and make a pull request out of that with this big
- pull request out of that with this big green button
- green button it's like that is in fact exactly what I
- it's like that is in fact exactly what I want to do right and there's other
- want to do right and there's other buttons and other ways to do this in the
- buttons and other ways to do this in the interface but they just know this is
- interface but they just know this is really common so they've put this pop-up
- really common so they've put this pop-up there right and so everybody should go
- there right and so everybody should go ahead and click that green button which
- ahead and click that green button which is compare and pull request
- is compare and pull request and then you get to one final form and
- and then you get to one final form and so this is the pull request form this is
- so this is the pull request form this is where you the outside contributor are
- where you the outside contributor are going to propose your changes to the
- going to propose your changes to the maintainer you can see there's a little
- maintainer you can see there's a little pull down here that says the base
- pull down here that says the base repository pailwire slash EE Cummings
- repository pailwire slash EE Cummings and it's Master branch is being kind of
- and it's Master branch is being kind of asked to accept a patch from the head
- asked to accept a patch from the head repository that's you another terrible
- repository that's you another terrible piece of jargon and that repository is
- piece of jargon and that repository is first PR and it's coming from its patch
- first PR and it's coming from its patch one branch right and if I scroll down
- one branch right and if I scroll down the page you'll see there's the diff
- the page you'll see there's the diff right it's going to say this is the
- right it's going to say this is the change that's being proposed to be
- change that's being proposed to be included and in between there's like a
- included and in between there's like a little text box and another space to
- little text box and another space to write and this box is really the place
- write and this box is really the place where you kind of make your case right
- where you kind of make your case right so this is going to go in as a sort of
- so this is going to go in as a sort of ticket for the maintainer with your code
- ticket for the maintainer with your code as a proposal for inclusion and what you
- as a proposal for inclusion and what you put here is really um can vary but you
- put here is really um can vary but you know if you you know if your work if
- know if you you know if your work if you're if you're making your first ever
- you're if you're making your first ever contribution or if you're doing
- contribution or if you're doing something complicated or whatever you
- something complicated or whatever you know you have to realize you have to
- know you have to realize you have to convince the person who runs the
- convince the person who runs the repository to accept your change right
- repository to accept your change right and so this this form is often a place
- and so this this form is often a place where people try to be persuasive you
- where people try to be persuasive you know they'll say hey there's this bug
- know they'll say hey there's this bug you can see the bug in ticket number
- you can see the bug in ticket number whatever and I researched it and I found
- whatever and I researched it and I found out that this was the problem and then I
- out that this was the problem and then I figured out here's how we're going to
- figured out here's how we're going to fix it I made the change to fix it and
- fix it I made the change to fix it and here it is what do you think right and
- here it is what do you think right and so like that type of rhetoric is really
- so like that type of rhetoric is really common and then you'll see it in a
- common and then you'll see it in a second the maintainer's job is to sort
- second the maintainer's job is to sort of review your proposal and try to
- of review your proposal and try to responsibly decide whether to integrate
- responsibly decide whether to integrate your code whether to ask for you to make
- your code whether to ask for you to make some changes to it or whether to reject
- some changes to it or whether to reject your proposal right and these this sort
- your proposal right and these this sort of interaction that happens is often
- of interaction that happens is often done between total strangers
- done between total strangers um on other sides of the planet one of
- um on other sides of the planet one of my favorite things in life is to wake up
- my favorite things in life is to wake up in the morning and like someone in
- in the morning and like someone in Ukraine or Japan and has sent me a pull
- Ukraine or Japan and has sent me a pull request it's just incredible you know
- request it's just incredible you know um
- um and it honestly blows my mind every time
- and it honestly blows my mind every time it happens but um
- it happens but um but that there's there's tens of
- but that there's there's tens of thousands of these little interactions
- thousands of these little interactions happening all around the world every day
- happening all around the world every day via GitHub and so this will be your kind
- via GitHub and so this will be your kind of first shot at that
- of first shot at that um uh because this is something we're
- um uh because this is something we're doing in a controlled environment
- doing in a controlled environment together and the change we're making is
- together and the change we're making is pretty clear I think that just us saying
- pretty clear I think that just us saying explicitly what we're doing which is
- explicitly what we're doing which is entering a poem and tagging the ticket
- entering a poem and tagging the ticket that those two things are probably uh
- that those two things are probably uh kind of good enough to have a good pull
- kind of good enough to have a good pull request here but I think usually I mean
- request here but I think usually I mean Simon is more of a maintainer than I am
- Simon is more of a maintainer than I am usually you're looking for maybe a
- usually you're looking for maybe a little more than that Simon or what do
- little more than that Simon or what do you look for in in with this message I
- you look for in in with this message I mean the big thing is the worst thing
- mean the big thing is the worst thing that can happen is somebody shows up
- that can happen is somebody shows up with a 100 line pull request for
- with a 100 line pull request for something that you didn't know they were
- something that you didn't know they were going to do and that and now you have to
- going to do and that and now you have to read through the account you don't
- read through the account you don't understand the background so the link to
- understand the background so the link to the issue is crucial for me because I
- the issue is crucial for me because I always want things to be discussed in an
- always want things to be discussed in an issue before they get to the point where
- issue before they get to the point where people are submitting code and then
- people are submitting code and then honestly I used to write really long
- honestly I used to write really long descriptions in these until I realized
- descriptions in these until I realized that a better thing to do with that is
- that a better thing to do with that is to have documentation that's in the
- to have documentation that's in the repository which you update as part of
- repository which you update as part of the pull request so for my projects I
- the pull request so for my projects I tend to encourage people to have a pull
- tend to encourage people to have a pull request which has tests and
- request which has tests and documentation and the implementation and
- documentation and the implementation and then you can have a sentence and I don't
- then you can have a sentence and I don't care but for projects that don't have
- care but for projects that don't have documentation or what but you end up
- documentation or what but you end up wanting wanting a bit more detail than
- wanting wanting a bit more detail than that
- that um something which we can demonstrate
- um something which we can demonstrate actually with one of the pull requests I
- actually with one of the pull requests I just filed is that you can file a pull
- just filed is that you can file a pull request and then add your own comments
- request and then add your own comments to it so you can actually get away with
- to it so you can actually get away with a sort of very short initial thing but
- a sort of very short initial thing but then start a conversation in a thread
- then start a conversation in a thread and Link that into the into the into the
- and Link that into the into the into the code itself if you want to to detail
- code itself if you want to to detail more about how you approach something
- more about how you approach something great tips so once you've kind of got
- great tips so once you've kind of got your initial message together you just
- your initial message together you just hit this green button here which says
- hit this green button here which says create pull request and so I would ask
- create pull request and so I would ask everybody to do that
- everybody to do that and you can see that now we're at the
- and you can see that now we're at the page that looks a lot like an issue but
- page that looks a lot like an issue but unlike an issue it has a file change
- unlike an issue it has a file change attached to it right that's the major
- attached to it right that's the major difference that's what makes it the pull
- difference that's what makes it the pull request
- request and you can actually see here at the top
- and you can actually see here at the top of the repository in the pull request
- of the repository in the pull request tab
- tab or if you click there are all the pull
- or if you click there are all the pull requests that have come in and just in
- requests that have come in and just in the last few minutes everybody's pull
- the last few minutes everybody's pull requests are landing right we can see
- requests are landing right we can see there actually were two ongoing
- there actually were two ongoing discussions with uh two of our heroic
- discussions with uh two of our heroic contributors here at the bottom that I
- contributors here at the bottom that I haven't resolved yet and then here's all
- haven't resolved yet and then here's all the transcriptions that we've been doing
- the transcriptions that we've been doing here in class right and if it's one of
- here in class right and if it's one of my two ones they've got a little bit of
- my two ones they've got a little bit of extra commentary in them which might be
- extra commentary in them which might be interesting to see excellent let me find
- interesting to see excellent let me find one here so here's Simon's first one so
- one here so here's Simon's first one so I'm now looking at this as me or you
- I'm now looking at this as me or you know as the first PR user who is
- know as the first PR user who is effectively Simon's peer right like
- effectively Simon's peer right like another outside contributor and so Simon
- another outside contributor and so Simon has done his little comments oh look at
- has done his little comments oh look at that so you want to explain it
- that so you want to explain it uh yes so um I hit the M Dash issue
- uh yes so um I hit the M Dash issue um so I decided to put a comment around
- um so I decided to put a comment around this and then add a little screenshot of
- this and then add a little screenshot of the original so you can see I am as a
- the original so you can see I am as a wind I've got my mdash there in the in
- wind I've got my mdash there in the in the in the in the um origin it looked
- the in the in the um origin it looked like that just so that we can have a
- like that just so that we can have a conversation about whether or not that's
- conversation about whether or not that's the right typographical approach for
- the right typographical approach for rendering this poem yep and in a long
- rendering this poem yep and in a long pull request where a bunch of code gets
- pull request where a bunch of code gets changed you could have multiple threads
- changed you could have multiple threads like this you can talk about this line
- like this you can talk about this line or that line and they can kind of Branch
- or that line and they can kind of Branch off into like a more targeted
- off into like a more targeted discussions so so to someone like my
- discussions so so to someone like my fake user this is a discussion that
- fake user this is a discussion that they're allowed to join right but they
- they're allowed to join right but they don't really have the authority to do
- don't really have the authority to do anything with the code right but if I
- anything with the code right but if I change browser tabs now and I go back to
- change browser tabs now and I go back to the browser tab where I'm me the
- the browser tab where I'm me the maintainer of it
- maintainer of it and I go to that same pull request
- and I go to that same pull request you'll see a slightly different
- you'll see a slightly different interface you'll see at the bottom that
- interface you'll see at the bottom that there's now a big green button that says
- there's now a big green button that says merge pull request and if I hit that it
- merge pull request and if I hit that it will accept Simon's changes into the
- will accept Simon's changes into the Repository
- Repository right but being part of you know one
- right but being part of you know one when I look at it it's the first thing
- when I look at it it's the first thing I'll do I'll read what they have and
- I'll do I'll read what they have and then I hit this tab right here file
- then I hit this tab right here file changed and this will show me the
- changed and this will show me the changes right and so to me as a you know
- changes right and so to me as a you know responsible maintainer I always want to
- responsible maintainer I always want to just carefully walk through the changes
- just carefully walk through the changes make sure I understand everything that's
- make sure I understand everything that's happening and then I'm allowed to make
- happening and then I'm allowed to make comments that are part of a code review
- comments that are part of a code review that can happen through the GitHub
- that can happen through the GitHub interface where I could say well I could
- interface where I could say well I could ask Simon a question why did we do this
- ask Simon a question why did we do this or I could suggest the change what's
- or I could suggest the change what's like that this is okay but what if we we
- like that this is okay but what if we we could save two lines of code if we wrote
- could save two lines of code if we wrote it this other way right or this looks
- it this other way right or this looks like maybe a bug you know and like and
- like maybe a bug you know and like and that that conversation can happen
- that that conversation can happen through this process so in our case here
- through this process so in our case here today whoa my desk is going down
- um my standing desk just rebelled so uh
- my standing desk just rebelled so uh so in my case here today the review for
- so in my case here today the review for this repository is not really code
- this repository is not really code review right it's a text review and so I
- review right it's a text review and so I have firmages first edition and so I'm
- have firmages first edition and so I'm going to go to the index of this and I'm
- going to go to the index of this and I'm going to look up Simon's poem which is
- going to look up Simon's poem which is supposing I dreamed this right which is
- supposing I dreamed this right which is on page 311.
- on page 311. so I'm going to thumb to that and then
- so I'm going to thumb to that and then I'm gonna just proof his key punching
- I'm gonna just proof his key punching against uh what I find in firmages
- against uh what I find in firmages Edition and that also gets us both the
- Edition and that also gets us both the first edition and firmage which is kind
- first edition and firmage which is kind of what I'm going for right
- of what I'm going for right and so um
- and so um should we have a poetry reading uh
- should we have a poetry reading uh supposing I dreamed this only imagine oh
- supposing I dreamed this only imagine oh I see the first thing so we see here
- I see the first thing so we see here this is actually a sort of there's no
- this is actually a sort of there's no way Simon would have known this but in
- way Simon would have known this but in many of the first editions of Cummings
- many of the first editions of Cummings there are spaces put after the commas
- there are spaces put after the commas and the poems but the scholars have
- and the poems but the scholars have found that in his original intention in
- found that in his original intention in his archives he omits those right and so
- his archives he omits those right and so this is a case where there's probably a
- this is a case where there's probably a discrepancy between the first edition
- discrepancy between the first edition and fermage but our policy as a site is
- and fermage but our policy as a site is to exclude those spaces and so this
- to exclude those spaces and so this would be a case where I could make the
- would be a case where I could make the change myself or I could suggest the
- change myself or I could suggest the changed to Simon I think there even is a
- changed to Simon I think there even is a suggestion option right Simon's that's
- directly I think because you're the owner of the repository that's allowed
- owner of the repository that's allowed to I definitely could but I'm gonna do
- to I definitely could but I'm gonna do like the starter review and so now I've
- like the starter review and so now I've just made a kind of suggestion right
- just made a kind of suggestion right that we're gonna change remove that
- that we're gonna change remove that space only imagine when Dave has
- space only imagine when Dave has thrilled day has thrilled I like that
- thrilled day has thrilled I like that you are a house around which I am a wind
- you are a house around which I am a wind your walls will not reckon how strangely
- your walls will not reckon how strangely my life is curved since the best he can
- my life is curved since the best he can do is to peer and then
- do is to peer and then peer through windows on observe this is
- peer through windows on observe this is another case where we want uh to take
- another case where we want uh to take the space out
- the space out and so then I'm going to add another
- and so then I'm going to add another comment there
- comment there right uh through space unobserved m Dash
- right uh through space unobserved m Dash looks good Simon nice
- looks good Simon nice and then here's another one where we
- and then here's another one where we want to take the space out
- want to take the space out add the review comment
- add the review comment listen for out of all things and then
- listen for out of all things and then there's no space after the parenthesis
- there's no space after the parenthesis this is another change
- this is another change right
- right uh dream is no one's fool
- uh dream is no one's fool I love the curly quote there Simon well
- I love the curly quote there Simon well done
- done semicolon
- semicolon if this wind who I am prowls carefully
- if this wind who I am prowls carefully around this house of you
- around this house of you love being so Simon's got there I'm like
- love being so Simon's got there I'm like thumbs up so I can resolve that and say
- thumbs up so I can resolve that and say good job Simon and then that one closes
- good job Simon and then that one closes right
- right love being such and so here we have
- love being such and so here we have another white space thing
- another white space thing so I'm going to hit the suggestion
- so I'm going to hit the suggestion button and just make that little change
- such or such the normal corners of your heart will never guess how much my
- heart will never guess how much my wonderful jealousy is dark if light
- wonderful jealousy is dark if light should flower oh you have a semicolon
- should flower oh you have a semicolon and in firmage it's a colon
- and in firmage it's a colon huh
- huh uh we could look back at the first
- uh we could look back at the first edition I'm not you know it's pretty
- edition I'm not you know it's pretty hard to read that scan sometimes
- hard to read that scan sometimes or laughing Sparkle from the shut house
- or laughing Sparkle from the shut house around and around which a poor wind will
- around and around which a poor wind will roam okay so that's the poem with these
- roam okay so that's the poem with these minor changes I would be okay with
- minor changes I would be okay with including it so I've made my suggestions
- including it so I've made my suggestions to Simon and then I'm going to hit
- to Simon and then I'm going to hit finish review
- finish review and I can hit a button here called
- and I can hit a button here called request changes and so then this is
- request changes and so then this is going to be a volley that I send back to
- going to be a volley that I send back to him the contributor I'm going to say uh
- him the contributor I'm going to say uh you know and then I can send a message
- you know and then I can send a message that will go back to him so I can say
- that will go back to him so I can say contribution looks great generally
- contribution looks great generally and this is where again being polite is
- and this is where again being polite is always uh you know a good approach
- always uh you know a good approach especially if you're dealing with people
- especially if you're dealing with people you don't know contribution looks great
- you don't know contribution looks great generally thank you for doing this you
- generally thank you for doing this you know I'll play acting a little here
- know I'll play acting a little here there are a few and then explaining why
- there are a few and then explaining why I want to make the changes there are a
- I want to make the changes there are a few small inconsistencies
- few small inconsistencies between the first editions spacing and
- between the first editions spacing and what we see in firmages
- what we see in firmages um
- um complete poems
- complete poems which is our authoritative
- which is our authoritative Source I've made those changes here
- Source I've made those changes here those edits here once they're accepted
- um we can merge this request right so that's my little note back to Simon I
- that's my little note back to Simon I have options here to either just send a
- have options here to either just send a general comment to sort of do a thumbs
- general comment to sort of do a thumbs up and approve it because sometimes
- up and approve it because sometimes multiple people approve things before
- multiple people approve things before they go out and then finally there's one
- they go out and then finally there's one that's called request changes which is
- that's called request changes which is maybe the most common where you're
- maybe the most common where you're saying look here's what I want you to do
- saying look here's what I want you to do right and so I hit submit review and
- right and so I hit submit review and that is a code review if you've ever
- that is a code review if you've ever heard that term we just did it and we
- heard that term we just did it and we could see that back on the pull request
- could see that back on the pull request there my comment appears with this code
- there my comment appears with this code form for Simon because I use the
- form for Simon because I use the suggestion panel
- suggestion panel um he's actually able to accept my
- um he's actually able to accept my suggestions with new commits simply by
- suggestions with new commits simply by um hitting the little pull down in these
- um hitting the little pull down in these conversations this is an incredible
- conversations this is an incredible GitHub feature a great example of just
- GitHub feature a great example of just making things easier through user
- making things easier through user interface so Simon I'm just going to go
- interface so Simon I'm just going to go ahead and accept these just to show how
- ahead and accept these just to show how it works
- it works oh
- I've accepted some of them already this might as a suggestion Collision let's
- might as a suggestion Collision let's see what happens
- um I'll do the last two here don't worry about it I'd suggest doing a merged
- about it I'd suggest doing a merged emerge a squash merger on this one
- emerge a squash merger on this one because otherwise we'll end it with a
- because otherwise we'll end it with a ugly set of times yeah that's fine so
- ugly set of times yeah that's fine so we've done this and the changes are
- we've done this and the changes are there and so now if I go back to files
- there and so now if I go back to files changes
- changes and I look we could see that those white
- and I look we could see that those white spaces are gone right they've been fixed
- spaces are gone right they've been fixed I'm feeling good about the poem
- I'm feeling good about the poem could always be something else goes
- could always be something else goes wrong
- wrong but I see the change requested shows up
- but I see the change requested shows up I'm not feeling good about it
- I'm not feeling good about it and so um
- and so um I think there's a way I can then accept
- I think there's a way I can then accept the changes right so like back here I do
- the changes right so like back here I do in the interface I say yep I'm good with
- in the interface I say yep I'm good with it now approve
- it now approve and now you can see my approval shows up
- and now you can see my approval shows up everything's run through and I have this
- everything's run through and I have this big green button to merge the pull
- big green button to merge the pull request uh Simon was saying I should
- request uh Simon was saying I should squash it which basically means combine
- squash it which basically means combine everything into a single commit so that
- everything into a single commit so that all our little changes don't go into the
- all our little changes don't go into the log which is you know
- log which is you know more of a aesthetic thing but I think
- more of a aesthetic thing but I think the correct decision and so I'm just
- the correct decision and so I'm just going to say let's squash it
- going to say let's squash it they all get put together into one uh
- they all get put together into one uh commit message
- commit message and I hit that button
- and I hit that button and now it says you know pale wire
- and now it says you know pale wire merged this commit into master
- merged this commit into master and if we look at the commit log for the
- and if we look at the commit log for the repository which we see right here we
- repository which we see right here we now see in the the most recent commit
- now see in the the most recent commit message is Simon right and so he's now I
- message is Simon right and so he's now I think for the first time an author on
- think for the first time an author on this repository and the change from his
- this repository and the change from his Fork has been integrated into the main
- Fork has been integrated into the main branch
- branch congratulations Simon thank you for
- congratulations Simon thank you for doing it his ticket was number 181 if I
- doing it his ticket was number 181 if I go back to that ticket
- go back to that ticket oh that's the pull work this ticket it
- oh that's the pull work this ticket it should close automatically but sometimes
- should close automatically but sometimes that takes a minute
- that takes a minute um just because GitHub has like a
- um just because GitHub has like a process that has to play out
- process that has to play out um he maybe didn't say fixes in his
- um he maybe didn't say fixes in his message and so I'm just going to go
- message and so I'm just going to go ahead and close this issue manually
- ahead and close this issue manually because that poem has been entered and
- because that poem has been entered and so I think we're good to go right
- so I think we're good to go right um
- um we have on our page now 14 pull requests
- we have on our page now 14 pull requests which is so exciting for me thank you
- which is so exciting for me thank you guys for putting these in this is
- guys for putting these in this is awesome
- awesome um once class is over I'm gonna go
- um once class is over I'm gonna go through and review all of these and get
- through and review all of these and get everybody's poem in by I hope the end of
- everybody's poem in by I hope the end of the day uh if there's any small stuff I
- the day uh if there's any small stuff I might just clean it up myself or you
- might just clean it up myself or you know send it back for commit comments in
- know send it back for commit comments in case anybody has any issues um one final
- case anybody has any issues um one final thing I want to show you is that because
- thing I want to show you is that because of how this repository is set up when
- of how this repository is set up when you make a code commit it automatically
- you make a code commit it automatically republishes the website and that's via
- republishes the website and that's via another great GitHub feature which is
- another great GitHub feature which is called actions and so actions which is
- called actions and so actions which is another tab at the top is effectively a
- another tab at the top is effectively a cloud computing platform dedicated just
- cloud computing platform dedicated just to your repository this is a truly
- to your repository this is a truly incredible feature of GitHub so
- incredible feature of GitHub so basically you're able to take events
- basically you're able to take events that occur within your repository or
- that occur within your repository or schedule tasks that you set up yourself
- schedule tasks that you set up yourself and you're able to run your code in the
- and you're able to run your code in the cloud for free if your site is open
- cloud for free if your site is open source which is just ah it's like the
- source which is just ah it's like the greatest thing going in open source
- greatest thing going in open source software if you ask me and what I've
- software if you ask me and what I've done if you read the the code repository
- done if you read the the code repository is I've configured this repository with
- is I've configured this repository with an action that uses the baker Frameworks
- an action that uses the baker Frameworks tools to republish the website every
- tools to republish the website every time there's a Code commit and so we can
- time there's a Code commit and so we can see here that two minutes ago when we
- see here that two minutes ago when we merged Simon's code it rebuilt and
- merged Simon's code it rebuilt and republished the website and so Simon's
- republished the website and so Simon's poem was
- poem was um
- um supposing I dreamed this right Simon and
- supposing I dreamed this right Simon and so now this is the big drum roll please
- so now this is the big drum roll please if I go to cummings.ee and I go to the
- if I go to cummings.ee and I go to the is five and I go to supposing I dream
- is five and I go to supposing I dream this look it's now a hyperlink right
- this look it's now a hyperlink right when before it wasn't and if I click in
- when before it wasn't and if I click in there's Simon's work now transcribe and
- there's Simon's work now transcribe and available on the web we hope you know
- available on the web we hope you know forever or at least until the end of you
- forever or at least until the end of you know the internet and I'm available in
- know the internet and I'm available in Google search also available
- Google search also available automatically as a CSV or Json output if
- automatically as a CSV or Json output if anybody wants to create an EE Cummings
- anybody wants to create an EE Cummings bot I will work with you I would love to
- bot I will work with you I would love to see that happen but everything is
- see that happen but everything is machine readable on the site my dream is
- machine readable on the site my dream is to do more with that one of my friends
- to do more with that one of my friends has said we just have to name it deep
- has said we just have to name it deep fakes with two Capital E's and I think
- fakes with two Capital E's and I think uh I think well that's my only request
- uh I think well that's my only request um so we'll get everybody else in but
- um so we'll get everybody else in but that's effectively the whole cycle and
- that's effectively the whole cycle and the end of the Spiel you know if you
- the end of the Spiel you know if you were to if you were to enter more than
- were to if you were to enter more than one poem you know you could just repeat
- one poem you know you could just repeat that over and over again to enter each
- that over and over again to enter each poem sometimes people will submit
- poem sometimes people will submit multiple poems at the same time this is
- multiple poems at the same time this is like a a matter of art with pull
- like a a matter of art with pull requests which is do you just do one
- requests which is do you just do one thing or do you try to do multiple
- thing or do you try to do multiple things to save time
- things to save time um I think Simon and I are probably on
- um I think Simon and I are probably on that one thing at a time kind of train
- that one thing at a time kind of train just because that makes the life of the
- just because that makes the life of the maintainer easier and the code is more
- maintainer easier and the code is more easily kind of managed but honestly
- easily kind of managed but honestly that's all a matter of kind of art you
- that's all a matter of kind of art you know what I mean and approach so I mean
- know what I mean and approach so I mean with that we've really reached the end
- with that we've really reached the end of the tutorial and and what you need to
- of the tutorial and and what you need to see on my screen but I'd like to leave
- see on my screen but I'd like to leave some time now just to um answer your
- some time now just to um answer your questions and just have a uh you know
- questions and just have a uh you know talk about anything you want to talk
- talk about anything you want to talk about related to pull requests or open
- about related to pull requests or open source software or GitHub or modernist
- source software or GitHub or modernist poetry if you want to continue to
- poetry if you want to continue to indulge me
- indulge me so
- so what do you guys want to know
- what do you guys want to know got a quick question I was curious so
- got a quick question I was curious so when I was doing my poem
- when I was doing my poem for this specific
- for this specific against I couldn't read some
- against I couldn't read some because of the the scam yeah so is there
- because of the the scam yeah so is there like I don't know sort of a standardized
- like I don't know sort of a standardized way or something for me to bring that to
- way or something for me to bring that to you in this case your attention that
- you in this case your attention that look I'm trying to submit something I
- look I'm trying to submit something I know isn't done or right but it's most
- know isn't done or right but it's most of the work
- of the work um so this is uh with the example we
- um so this is uh with the example we showed with my pull request this is I
- showed with my pull request this is I like using the comments on lines feature
- like using the comments on lines feature so you can put in the poem submit the
- so you can put in the poem submit the pull request and then you can add your
- pull request and then you can add your own comments to the pull request saying
- own comments to the pull request saying these three lines here I don't think are
- these three lines here I don't think are quite right so I did that by adding in a
- quite right so I did that by adding in a little screenshot you don't even need to
- little screenshot you don't even need to do that and yeah that's um something
- do that and yeah that's um something that I think is really important is it's
- that I think is really important is it's okay to talk to yourself in GitHub
- okay to talk to yourself in GitHub issues and GitHub bull requests I have a
- issues and GitHub bull requests I have a lot of repositories with issue threads
- lot of repositories with issue threads with dozens of comments they're all just
- with dozens of comments they're all just me talking back and forth and recording
- me talking back and forth and recording the decisions I was making and asking
- the decisions I was making and asking myself questions that I resolved later
- myself questions that I resolved later on that these things are free there's no
- on that these things are free there's no size limits on them there's no there's
- size limits on them there's no there's no reason not to add information and
- no reason not to add information and questions like that and I think raising
- questions like that and I think raising it as a discussion item is definitely
- it as a discussion item is definitely the way to go you know because it you
- the way to go you know because it you know who knows who's maintaining the
- know who knows who's maintaining the repo and if you don't know them you can
- repo and if you don't know them you can get differing results but I think most
- get differing results but I think most maintainers want people to be
- maintainers want people to be transparent to like ask their questions
- transparent to like ask their questions and just to like raise problems most
- and just to like raise problems most people that's what most maintainers want
- people that's what most maintainers want obviously there are jerks on the
- obviously there are jerks on the internet you know what I mean and so it
- internet you know what I mean and so it happens every once in a while you will
- happens every once in a while you will have what we call nerd tosterone yeah
- have what we call nerd tosterone yeah before I work that'll come up in these
- before I work that'll come up in these conversations but I think you should err
- conversations but I think you should err on the side of just clear communication
- on the side of just clear communication and so like in the case of this repo I
- and so like in the case of this repo I would want just like what Simon proposed
- would want just like what Simon proposed or even somebody just filing an issue
- or even somebody just filing an issue like honestly I am fine with people
- like honestly I am fine with people filing issues that are just questions
- filing issues that are just questions like what do I do and then we just have
- like what do I do and then we just have the conversation and the issue it can
- the conversation and the issue it can almost be like a helpline because I
- almost be like a helpline because I would rather have that conversation than
- would rather have that conversation than the person not contribute you know
- the person not contribute you know um and I want to know about the problems
- um and I want to know about the problems in this case the particular thingy thing
- in this case the particular thingy thing is we already have a policy which is we
- is we already have a policy which is we go to the firmage right and that's based
- go to the firmage right and that's based on my reporting where basically I
- on my reporting where basically I developed a little Cadre of ee coming
- developed a little Cadre of ee coming Scholars who I interviewed and I got
- Scholars who I interviewed and I got their advice and they were like if it's
- their advice and they were like if it's ever weird just use the firmage and so
- ever weird just use the firmage and so that's kind of our policy and there
- that's kind of our policy and there actually is a file in the repo called
- actually is a file in the repo called the contributing file which you'll see
- the contributing file which you'll see on a lot of repos where I've kind of
- on a lot of repos where I've kind of laid out the rules of the repo I didn't
- laid out the rules of the repo I didn't show that today but in there you can
- show that today but in there you can find the explanation of the yaml the
- find the explanation of the yaml the links to the first position and some
- links to the first position and some answers to kind of an FAQ about issues
- answers to kind of an FAQ about issues like this and in there it just says we
- like this and in there it just says we go to the firmage which has its own
- go to the firmage which has its own problems but it's you know better than
- problems but it's you know better than not knowing we could always go back to
- not knowing we could always go back to the library and just like look at it
- the library and just like look at it [Laughter]
- [Laughter] but they actually have more than one
- but they actually have more than one first edition at Central Library they've
- first edition at Central Library they've been rebound by the library about 50
- been rebound by the library about 50 years ago
- years ago prior to the fire so they survived the
- prior to the fire so they survived the fire
- um which there's a whole book about Susan Orleans wrote called the library
- Susan Orleans wrote called the library book it's about the LA Library fire
- book it's about the LA Library fire excellent book
- excellent book and the history of Los Angeles as well
- and the history of Los Angeles as well um do you mind if I just ask a
- um do you mind if I just ask a clarifying question there so in terms of
- clarifying question there so in terms of like Simon your workflow there where
- like Simon your workflow there where you're saying your commenting so if I'm
- you're saying your commenting so if I'm on
- on where my pull request is in GitHub
- where my pull request is in GitHub I've just got this Branch there's no
- I've just got this Branch there's no conflicts with Brett based branch and
- conflicts with Brett based branch and then I've got the option to leave
- then I've got the option to leave comment below is that where you're
- comment below is that where you're having that conversation or are you
- having that conversation or are you opening up
- opening up the two places I'll have I'll often if
- the two places I'll have I'll often if that's an issue I tend to prefer using
- that's an issue I tend to prefer using the issue for the comments once I've
- the issue for the comments once I've opened a pull request I'll use comments
- opened a pull request I'll use comments on the pull request and I just find that
- on the pull request and I just find that they're both places where people see you
- they're both places where people see you can add comments to individual commits
- can add comments to individual commits but I don't feel like that sounds good a
- but I don't feel like that sounds good a place just because people can miss them
- place just because people can miss them there like this everyone involved in the
- there like this everyone involved in the repository is going to be reading
- repository is going to be reading everything on the issues and everything
- everything on the issues and everything on the pull request that's the safest
- on the pull request that's the safest place to put this stuff
- um Ben I couldn't help but um notice you you mentioned this is actually kind of
- you mentioned this is actually kind of like more of a baker related question
- like more of a baker related question um I was playing around with your um
- um I was playing around with your um first visual story
- first visual story um setup
- um setup um and it was really really well done
- um and it was really really well done and I was actually trying to hack it to
- and I was actually trying to hack it to redesign like my personal site because I
- redesign like my personal site because I know it's mainly made to be just like a
- know it's mainly made to be just like a one-page kind of thing but I I'm
- one-page kind of thing but I I'm assuming in Baker you're able to like
- assuming in Baker you're able to like make a somewhat more not super robust
- make a somewhat more not super robust website but something that has a couple
- website but something that has a couple of you know oh you have different pages
- of you know oh you have different pages um is that something that's appropriate
- um is that something that's appropriate because I never know I've never this is
- because I never know I've never this is I've never actually submitted a pull
- I've never actually submitted a pull request to an open source
- request to an open source um project and I know obviously
- um project and I know obviously different maintainers have their
- different maintainers have their different kind of like General like uh
- different kind of like General like uh what's accepted and what's not uh from
- what's accepted and what's not uh from what you said is like is submitting just
- what you said is like is submitting just kind of an issue even though it's not an
- kind of an issue even though it's not an issue but just like hey is there a Best
- issue but just like hey is there a Best practice of how to make a website
- practice of how to make a website because I want to know from my users
- because I want to know from my users what the problem is and so if they want
- what the problem is and so if they want to email me that's fine if they want to
- to email me that's fine if they want to file an issue that's fine because I I
- file an issue that's fine because I I often think it's better if it's an issue
- often think it's better if it's an issue because then future other people could
- because then future other people could Google it and see a conversation totally
- Google it and see a conversation totally sounds like in this case it may be like
- sounds like in this case it may be like a documentation bug you know what I mean
- a documentation bug you know what I mean there might be a way to strengthen the
- there might be a way to strengthen the documentation so to answer the question
- documentation so to answer the question basically every HTML file you make in
- basically every HTML file you make in the baker project will be served and so
- the baker project will be served and so you could just make a file called
- you could just make a file called foo.html and then there'd be slash Foo
- foo.html and then there'd be slash Foo on your site and so you can add hoc make
- on your site and so you can add hoc make as many pages as you want which may not
- as many pages as you want which may not be documented well enough now that I
- be documented well enough now that I think about it right it was really much
- think about it right it was really much more like I like like connecting them
- more like I like like connecting them kind of before because like my and it's
- kind of before because like my and it's really just my lack of general I'm not
- really just my lack of general I'm not not a web developer kind of thing but it
- not a web developer kind of thing but it was a desire of mine because I was like
- was a desire of mine because I was like oh I really like this framework because
- oh I really like this framework because you know I really was originally using
- you know I really was originally using um looking at some of the other ones and
- um looking at some of the other ones and I was kind of like oh wow this is really
- I was kind of like oh wow this is really cool so
- cool so um yeah the feature I'd point you to
- um yeah the feature I'd point you to that's really powerful is you can
- that's really powerful is you can dynamically generate pages right that
- dynamically generate pages right that was that was kind of my Hope was that
- was that was kind of my Hope was that like for like a Blog that I might have
- like for like a Blog that I might have on my personal site exactly it would
- on my personal site exactly it would dynamically generate so for instance
- dynamically generate so for instance Baker does the LA Times coronavirus
- Baker does the LA Times coronavirus tracker which has a page for each of
- tracker which has a page for each of California's 58 counties but there's
- California's 58 counties but there's only one template right and then there's
- only one template right and then there's there's a little bit of JavaScript
- there's a little bit of JavaScript that's in the configuration file that
- that's in the configuration file that tells it to to generate one for each um
- tells it to to generate one for each um one for each County that I think is
- one for each County that I think is better documented but yeah sure could be
- better documented but yeah sure could be improved so if you really wanted to be
- improved so if you really wanted to be like the a plus plus student that the
- like the a plus plus student that the maintainers love
- maintainers love is if you figured it out you would
- is if you figured it out you would submit the readme edit that like that's
- submit the readme edit that like that's missing like if you if you really want
- missing like if you if you really want to make friends like that stuff like
- to make friends like that stuff like that people love I do yeah all the time
- that people love I do yeah all the time typos anytime you see a typo in any
- typos anytime you see a typo in any documentation you can submit a pull
- documentation you can submit a pull request but also I love adding examples
- request but also I love adding examples because everyone who writes
- because everyone who writes documentation always forgets that people
- documentation always forgets that people just want to see an example of the thing
- just want to see an example of the thing yeah if you find something's missing
- yeah if you find something's missing example you submit an example there's a
- example you submit an example there's a good chance it'll be accepted
- good chance it'll be accepted yeah and you might not hear back from
- yeah and you might not hear back from them for months who knows if they're
- them for months who knows if they're paying attention or whatever but it's
- paying attention or whatever but it's still it's a nice thing to do
- still it's a nice thing to do totally
- I think you just commented on a question that that I had as tied to this because
- that that I had as tied to this because you guys said that you know one pull
- you guys said that you know one pull request at a time is uh you know better
- request at a time is uh you know better handleable or whatever but so if I did
- handleable or whatever but so if I did if I was looking at the doctor reading
- if I was looking at the doctor reading documentation or something and I saw a
- documentation or something and I saw a typo like how small of a thing is worthy
- typo like how small of a thing is worthy of a pulled requester
- totally worth it I I accept pull requests like that all the time I love
- requests like that all the time I love them and I do those too just being a
- them and I do those too just being a news person you get kind of uptight
- news person you get kind of uptight about that stuff you know what I mean
- about that stuff you know what I mean and so like if if honestly we just went
- and so like if if honestly we just went through the class right we just went
- through the class right we just went through that class so that class we just
- through that class so that class we just did is a repo on GitHub right and so did
- did is a repo on GitHub right and so did you guys spot any typos I'm sure they're
- you guys spot any typos I'm sure they're in there did anybody you know if you saw
- in there did anybody you know if you saw one we could do a pull request right now
- one we could do a pull request right now I would you know or if like did I get a
- I would you know or if like did I get a link wrong you know I'm sure I screwed
- link wrong you know I'm sure I screwed something up I think I was I wrote that
- something up I think I was I wrote that with three beers on Wednesday night so
- with three beers on Wednesday night so like I'm sure something is wrong right
- like I'm sure something is wrong right and uh
- and uh um and so that would be a case where
- um and so that would be a case where yeah I've actually had people do that on
- yeah I've actually had people do that on other classes and I really appreciate it
- other classes and I really appreciate it you know I think it's great
- you know I think it's great sometimes it's embarrassing to see all
- sometimes it's embarrassing to see all your typos but you get over that
- thanks yeah I'd misspelled persuasive I saw that
- I'd misspelled persuasive I saw that this morning
- this morning duh
- you could write a bot that just found typos on GitHub couldn't you
- typos on GitHub couldn't you people have done it
- people have done it yeah
- yeah I actually I there are companies that do
- I actually I there are companies that do bots that like run the automatic
- bots that like run the automatic analysis and then spam repos with pull
- analysis and then spam repos with pull requests suggesting fixes and they tend
- requests suggesting fixes and they tend to get bams like people they're they're
- to get bams like people they're they're limits to what people will put out if it
- limits to what people will put out if it was a security flaw that's one thing but
- was a security flaw that's one thing but like yeah
- um then I have to have to bounce in a bit but um I um just wanted to ask you
- bit but um I um just wanted to ask you so you're you're going to be at night
- so you're you're going to be at night car next year yes I will be in Nashville
- car next year yes I will be in Nashville that's what we were talking about
- that's what we were talking about earlier so folks who don't know our data
- earlier so folks who don't know our data journalism World which is kind of where
- journalism World which is kind of where I was nurtured and uh brought into
- I was nurtured and uh brought into adulthood uh uh allegedly
- adulthood uh uh allegedly um is uh has an annual conference which
- um is uh has an annual conference which is called the night car conference and
- is called the night car conference and it's in a different city every year and
- it's in a different city every year and so it's it's where the data journalists
- so it's it's where the data journalists of the world kind of convene classes
- of the world kind of convene classes like this it's what I love about it is
- like this it's what I love about it is it's really a Hands-On event it's a
- it's really a Hands-On event it's a place where people teach each other code
- place where people teach each other code and teach each other data analysis and
- and teach each other data analysis and teach each other how to file public
- teach each other how to file public records requests for valuable government
- records requests for valuable government databases and like all this kind of the
- databases and like all this kind of the place where journalism and Technology
- place where journalism and Technology meets is at this conference and it's
- meets is at this conference and it's really focused on skills building and so
- really focused on skills building and so um I have a little dog and pony show of
- um I have a little dog and pony show of these kind of first classes where I have
- these kind of first classes where I have five or six of them and and so we'll do
- five or six of them and and so we'll do a couple at night car we're going to do
- a couple at night car we're going to do the the one I do the most which is
- the the one I do the most which is called first python notebook which is
- called first python notebook which is really teaching people data analysis
- really teaching people data analysis with the Jupiter notebook which Simon
- with the Jupiter notebook which Simon has helped with in the past
- has helped with in the past and um
- and um and I want to do first visual story but
- and I want to do first visual story but I haven't heard back yet but um um you
- I haven't heard back yet but um um you know we have a few other ones there's
- know we have a few other ones there's one so if you go to my website which is
- one so if you go to my website which is palewire
- palewire um you can find them in the
- um you can find them in the documentation page uh there's ones for
- documentation page uh there's ones for GitHub actions and uh uh Django admin
- GitHub actions and uh uh Django admin panels and a couple other things
- um yeah I'm bummed I'm gonna be in a wedding in India and I'm gonna miss oh
- wedding in India and I'm gonna miss oh wow um yeah wedding in India though yes
- wow um yeah wedding in India though yes you can't miss that you're very excited
- you can't miss that you're very excited it's incredible yeah I'm very excited it
- it's incredible yeah I'm very excited it happens to be like the literal weekend
- happens to be like the literal weekend that it's that it's happening so which
- that it's that it's happening so which city whereabouts in India it's going to
- city whereabouts in India it's going to be in Agra
- be in Agra um which of course has the the Taj Mahal
- um which of course has the the Taj Mahal but some friends and I are going to be
- but some friends and I are going to be hanging around um in Delhi beforehand
- hanging around um in Delhi beforehand and yeah we're making a whole making a
- and yeah we're making a whole making a whole ordeal out of it one of my first
- whole ordeal out of it one of my first friends from college to kind of get
- friends from college to kind of get hitched so
- hitched so um oh that's awesome I've never been to
- um oh that's awesome I've never been to India but I've always wanted to go I'm
- India but I've always wanted to go I'm so tempted to just you know bring my
- so tempted to just you know bring my computer and join virtually but my worst
- computer and join virtually but my worst demons you know I'm gonna lift that up
- demons you know I'm gonna lift that up they're all the other years but if you
- they're all the other years but if you you said you've never been in Nashville
- you said you've never been in Nashville like uh this isn't related to this class
- like uh this isn't related to this class at all but you gotta you gotta try the
- at all but you gotta you gotta try the hot chicken if you're uh if you're a um
- hot chicken if you're uh if you're a um a spicy food it's definitely taken over
- a spicy food it's definitely taken over Los Angeles it's colonized Our Fair yeah
- Los Angeles it's colonized Our Fair yeah yeah I should get the real thing right
- yeah I should get the real thing right no I mean if you get the off authentic
- no I mean if you get the off authentic one I I mean I'm not a spicy food person
- one I I mean I'm not a spicy food person but it really it was it was a different
- but it really it was it was a different dimension that's the hot ones kind of
- dimension that's the hot ones kind of special almost you get that whole
- special almost you get that whole experience yeah I gotta do that you're
- experience yeah I gotta do that you're right I got it that's going on the list
- right I got it that's going on the list um but yeah Simon Ben thank you so much
- um but yeah Simon Ben thank you so much I I always appreciate uh both of you
- I I always appreciate uh both of you guys putting these these things on and
- guys putting these these things on and they're super helpful and uh so yeah
- they're super helpful and uh so yeah thank you for coming
- thank you for coming thank you I'm glad I'm glad it's helpful
- thank you I'm glad I'm glad it's helpful totally all right have a good day guys
- totally all right have a good day guys yep you too
- yep you too um anything else folks want to talk
- um anything else folks want to talk about no pressure or anything but you
- about no pressure or anything but you know my wife's out of town I got nothing
- know my wife's out of town I got nothing to do
- to do did I just confirm what actually
- did I just confirm what actually happened with in terms of so I had a
- happened with in terms of so I had a fork of your repo are the main changes
- fork of your repo are the main changes to that my Fork yes and then what kind
- to that my Fork yes and then what kind of I just get in my head around what
- of I just get in my head around what actually happened when I'm creating that
- actually happened when I'm creating that pool request and what goes what kind of
- pool request and what goes what kind of happens there if that makes sense to
- happens there if that makes sense to then
- then for it then to turn up in the original
- for it then to turn up in the original repo I'm just trying to get my head
- repo I'm just trying to get my head around no I understand that does that
- around no I understand that does that make sense so I don't know if I'm
- make sense so I don't know if I'm explaining myself
- explaining myself thank you
- so if I mean I guess one way to think about
- I mean I guess one way to think about this is nothing changes at all until the
- this is nothing changes at all until the pull request is approved you know you've
- pull request is approved you know you've got your changes in your in your
- got your changes in your in your repository your the pull request is
- repository your the pull request is almost a sort of transient sort of um
- almost a sort of transient sort of um it's you've started that conversation
- it's you've started that conversation you've said said to Ben here are the
- you've said said to Ben here are the changes I would like to make
- changes I would like to make um
- um and nothing will happen then we can have
- and nothing will happen then we can have a conversation around this thing and so
- a conversation around this thing and so forth but until he hits that big green
- forth but until he hits that big green button there are no changes made to your
- button there are no changes made to your repository or to his repository when he
- repository or to his repository when he hits the green button his repository
- hits the green button his repository gets updated again your repository stays
- gets updated again your repository stays alone and you could leave it there for
- alone and you could leave it there for the rest of the time and it'll sit there
- the rest of the time and it'll sit there as a sort of
- as a sort of Frozen version of the thing that you
- Frozen version of the thing that you were working on
- were working on um but so really the um the Magic Moment
- um but so really the um the Magic Moment is the it's the merge it's when those
- is the it's the merge it's when those changes that you've suggested emerged
- changes that you've suggested emerged into into Ben's repository that um and
- into into Ben's repository that um and and added and published the website yeah
- and added and published the website yeah and so I've shared my screen again so I
- and so I've shared my screen again so I think this is one you entered right and
- think this is one you entered right and so we could see that this green
- so we could see that this green highlighted thing that's the patch that
- highlighted thing that's the patch that you're nominating for inclusion and so
- you're nominating for inclusion and so what closes the circle is that is sent
- what closes the circle is that is sent back across to the original right and
- back across to the original right and then I'm asked to merge it into mine and
- then I'm asked to merge it into mine and so basically your changes would be
- so basically your changes would be integrated right and so before so GitHub
- integrated right and so before so GitHub is really the reason it's worth so much
- is really the reason it's worth so much money and it's done so well is it just
- money and it's done so well is it just makes like buttons and forms to make
- makes like buttons and forms to make that easier right right but underneath
- that easier right right but underneath the hood if I put a dot diff at the end
- the hood if I put a dot diff at the end of the URL we see actually the code that
- of the URL we see actually the code that goes to the computer and so this is the
- goes to the computer and so this is the patch or what used to be called the the
- patch or what used to be called the the diff for GitHub and things like GitHub
- diff for GitHub and things like GitHub this this was all done over email you'd
- this this was all done over email you'd have a mailing list and people would be
- have a mailing list and people would be emailing each other literally these
- emailing each other literally these decks would be sent via email and it was
- decks would be sent via email and it was horrible it was such a difficult process
- horrible it was such a difficult process for everyone involved because you have
- for everyone involved because you have to manage your email inbox and apply
- to manage your email inbox and apply these changes one by one and review them
- these changes one by one and review them locally and so forth and GitHub made all
- locally and so forth and GitHub made all of that so much smoother like the amount
- of that so much smoother like the amount of value it added to open source in
- of value it added to open source in general just for making the stuff not be
- general just for making the stuff not be a horrifically like painful email-based
- a horrifically like painful email-based process was enormous
- process was enormous yeah
- yeah the shoe so I think it's just because I
- the shoe so I think it's just because I suppose I'm thinking of just using the
- suppose I'm thinking of just using the command line and when you do that the
- command line and when you do that the process is a little bit different so
- process is a little bit different so from what I've seen here kind of
- from what I've seen here kind of there's a bit of magic going on there so
- there's a bit of magic going on there so I'm just trying to get my head around
- I'm just trying to get my head around how that kind of how would relate to
- how that kind of how would relate to maybe
- maybe if I had my own Fork locally so if the
- if I had my own Fork locally so if the changes landline the way that tends to
- changes landline the way that tends to work is that it's you you do it all on
- work is that it's you you do it all on your own computer you make your
- your own computer you make your strangers but then you push them to
- strangers but then you push them to GitHub and then you go and click the
- GitHub and then you go and click the buttons on the web interface as well so
- buttons on the web interface as well so once you get to the pull request bit
- once you get to the pull request bit that's where you're sort of moving away
- that's where you're sort of moving away from what you're doing the command line
- from what you're doing the command line and moving into the things that you
- and moving into the things that you exclusively go and get about there
- exclusively go and get about there that's right and so I think like support
- that's right and so I think like support and the so the pull request really is a
- and the so the pull request really is a GitHub thing not a git thing you know
- GitHub thing not a git thing you know what I mean when you really like get
- what I mean when you really like get into it it's kind of like a branded
- into it it's kind of like a branded thing that they invented yeah you know
- thing that they invented yeah you know and it's terrible name okay it is I I
- and it's terrible name okay it is I I still don't know why they called it a
- still don't know why they called it a pull request but it's it's a it's been a
- pull request but it's it's a it's been a revelation in in software um just
- revelation in in software um just generally like the amount of
- generally like the amount of productivity it's unlocked if it was
- productivity it's unlocked if it was called a merge request I think I would
- called a merge request I think I would be happier but like it might make sense
- be happier but like it might make sense yeah my like rant on Version Control is
- yeah my like rant on Version Control is it's just the number of mixed metaphors
- it's just the number of mixed metaphors in Version Control is just incredible
- in Version Control is just incredible like is it a tree like is it a mass
- like is it a tree like is it a mass master and a slave is it uh you know
- master and a slave is it uh you know what I mean is it you know what is a
- what I mean is it you know what is a pull and a push like how do those how do
- pull and a push like how do those how do you pull the tree you know it's like
- you pull the tree you know it's like yeah and they they used to call the the
- yeah and they they used to call the the main or Master Branch the trunk do you
- main or Master Branch the trunk do you remember which is why it's called a
- remember which is why it's called a branch right
- branch right but then they stop calling it the trunk
- but then they stop calling it the trunk and see like oh why are we still calling
- and see like oh why are we still calling it a branch and like it's the whole
- it a branch and like it's the whole thing is a mess like they just need to
- thing is a mess like they just need to pick one metaphor and make it work but
- pick one metaphor and make it work but that'll never happen of course because
- that'll never happen of course because it's open source software so we're just
- it's open source software so we're just lucky it's not full of like misogynist
- lucky it's not full of like misogynist jokes or something but well the
- jokes or something but well the misogynist checks have been filtered out
- misogynist checks have been filtered out over time over time yeah exactly it took
- over time over time yeah exactly it took it it only took 30 years so
- it it only took 30 years so um the get the the default branch and
- um the get the the default branch and get was called Master until a couple of
- get was called Master until a couple of years ago and it was a huge like
- years ago and it was a huge like industry-wide effort to switch that
- industry-wide effort to switch that default to be called main instead
- default to be called main instead um which was and it worked to be I think
- um which was and it worked to be I think it's really impressive but it's it's
- it's really impressive but it's it's it's right but if you look at my
- it's right but if you look at my Cummings repo it's still the master
- Cummings repo it's still the master Branch because I made it before that
- Branch because I made it before that whole change happened and like I haven't
- whole change happened and like I haven't spent the 30 minutes it would take to
- spent the 30 minutes it would take to make that change which I probably should
- make that change which I probably should do it's just like one of those things I
- do it's just like one of those things I haven't got to you know
- haven't got to you know is there a way to
- is there a way to update my Fork
- update my Fork to match the master again or do I have
- to match the master again or do I have to great question
- to great question there is that's called fetching Upstream
- there is that's called fetching Upstream so this is another metaphor it's a river
- so this is another metaphor it's a river metaphor right which is that your code
- metaphor right which is that your code is is uh Downstream of the the trunk
- is is uh Downstream of the the trunk right and so when changes are being made
- right and so when changes are being made to what you forked from you might want
- to what you forked from you might want to catch up at some point right and so
- to catch up at some point right and so that's that scene is going to the
- that's that scene is going to the Upstream origin right and so there's a
- Upstream origin right and so there's a so in github's language they call that
- so in github's language they call that fetching upstream and you can do it from
- fetching upstream and you can do it from the command line by by like with a
- the command line by by like with a couple command line tricks but then
- couple command line tricks but then there's also a way to I have to look it
- there's also a way to I have to look it up every single time I do it I've been
- up every single time I do it I've been doing this stuff for like 15 years I
- doing this stuff for like 15 years I can't remember how to fetch from
- can't remember how to fetch from Upstream when I have to go and Google
- Upstream when I have to go and Google for it every single time
- for it every single time it is a pain and so GitHub interface you
- it is a pain and so GitHub interface you can see my screen
- can see my screen they have a little button here for this
- they have a little button here for this which is uh sync Fork
- which is uh sync Fork right and that'll let you do that and
- right and that'll let you do that and then there's this this also this is the
- then there's this this also this is the pull request button that isn't the
- pull request button that isn't the pop-up and so they kind of hide that
- pop-up and so they kind of hide that stuff in here
- and so like a cycle would be let's say I want to contribute like something later
- want to contribute like something later is I would go back to my main branch I
- is I would go back to my main branch I would fetch Upstream to make sure I've
- would fetch Upstream to make sure I've caught up I would then make a new Branch
- caught up I would then make a new Branch where my new SEC pull request number two
- where my new SEC pull request number two is going to go and then I would submit
- is going to go and then I would submit that right the only time you have an
- that right the only time you have an issue there is like well if your changes
- issue there is like well if your changes conflict with something that's Upstream
- conflict with something that's Upstream let's say in the in the in between
- let's say in the in the in between period right you've edited a file that
- period right you've edited a file that changed Upstream right and then when you
- changed Upstream right and then when you fetch you get the most infamous hell of
- fetch you get the most infamous hell of git which is a merge conflict which is
- git which is a merge conflict which is well you change something that somebody
- well you change something that somebody else changed and which one do we keep
- else changed and which one do we keep right and there's like a whole process
- right and there's like a whole process for dealing with that and slaying your
- for dealing with that and slaying your first like conflict message is like part
- first like conflict message is like part of your um your rite of passage is like
- of your um your rite of passage is like a as a computer programmer
- it's a river metaphor and then why is it called origin
- called origin that's just like CIS admin talk right
- anyway other questions
- all right well thanks again everybody I really appreciate your contributions
- really appreciate your contributions um I'm gonna go get something to eat my
- um I'm gonna go get something to eat my wife's out of town so I'm thinking Ramen
- wife's out of town so I'm thinking Ramen and uh and um and then I'm gonna take
- and uh and um and then I'm gonna take our video and try to post it on YouTube
- our video and try to post it on YouTube get all your pull requests in and I'll
- get all your pull requests in and I'll probably send an email to kind of
- probably send an email to kind of everybody who expressed interest so
- everybody who expressed interest so people who couldn't make it today can
- people who couldn't make it today can um you know maybe contribute a poem or
- um you know maybe contribute a poem or watch it at their Leisure we'll see but
- watch it at their Leisure we'll see but um I really appreciate you guys showing
- um I really appreciate you guys showing up I really really personally appreciate
- up I really really personally appreciate you helping with my little pet project I
- you helping with my little pet project I hope it also helped you at the same time
- hope it also helped you at the same time um my hope is is that by the end of the
- um my hope is is that by the end of the month we'll have the whole book in
- month we'll have the whole book in um so that's it Simon any parting words
- um yeah that I mean the main thing is this stuff is really really convoluted
- this stuff is really really convoluted but the um the stuff that we've shown
- but the um the stuff that we've shown you on GitHub specifically the um that
- you on GitHub specifically the um that that github.dev thing is such a huge
- that github.dev thing is such a huge leap forward in making this stuff
- leap forward in making this stuff actually Pleasant to use so I I'm really
- actually Pleasant to use so I I'm really excited about it I think it it does make
- excited about it I think it it does make this stuff a heck of a lot less painful
- this stuff a heck of a lot less painful for people to get involved with mm-hmm
- for people to get involved with mm-hmm all right so I'll see you guys on GitHub
- all right so I'll see you guys on GitHub thank you Ben thank you Simon that was
- thank you Ben thank you Simon that was awesome have a great weekend very much
First Pull Request
By Ben Welsh • • the e.e. cummings free poetry archive in Zoom