First Pull Request

By • the e.e. cummings free poetry archive in Zoom

Recording

Show the timestamped transcript
  1. you everyone for joining us here at first pull request live on Zoom this is
  2. first pull request live on Zoom this is a world premiere
  3. a world premiere the world premiere of a just you know
  4. the world premiere of a just you know little workshop that Simon and I had put
  5. little workshop that Simon and I had put together that really just kind of grows
  6. together that really just kind of grows out of some you know my our own activity
  7. out of some you know my our own activity as people who really love and want to
  8. as people who really love and want to promote open source software and kind of
  9. promote open source software and kind of like a little tradition in the data
  10. like a little tradition in the data journalism world where I came up of you
  11. journalism world where I came up of you know peers teaching peers and you know
  12. know peers teaching peers and you know once we learn how to do something we try
  13. once we learn how to do something we try to share it with as many other people as
  14. to share it with as many other people as possible and so really the goal of this
  15. possible and so really the goal of this is really just to share
  16. is really just to share um kind of what we see as a basic
  17. um kind of what we see as a basic fundamental skill of Open Source
  18. fundamental skill of Open Source software
  19. software um to help to help others learn it uh I
  20. um to help to help others learn it uh I think we can get through the course
  21. think we can get through the course materials in 60 to 90 minutes maybe even
  22. materials in 60 to 90 minutes maybe even faster just kind of depending on how
  23. faster just kind of depending on how things go but I am not in a hurry at all
  24. things go but I am not in a hurry at all and so we can go at whatever Pace works
  25. and so we can go at whatever Pace works for you or just for the material
  26. for you or just for the material because it is our first time teaching it
  27. because it is our first time teaching it there will definitely be a few hinks and
  28. there will definitely be a few hinks and bugs and so I appreciate your patience
  29. bugs and so I appreciate your patience at the outset
  30. at the outset um I should probably introduce myself my
  31. um I should probably introduce myself my name is Ben Welsh I'm broadcasting to
  32. name is Ben Welsh I'm broadcasting to you live from Little Tokyo in downtown
  33. you live from Little Tokyo in downtown Los Angeles I have been a data
  34. Los Angeles I have been a data journalist at the Los Angeles Times for
  35. journalist at the Los Angeles Times for 15 years next week this year I'm
  36. 15 years next week this year I'm currently on a fellowship at Stanford
  37. currently on a fellowship at Stanford University where I'm working working in
  38. University where I'm working working in partnership with the journalism school
  39. partnership with the journalism school there on a project called Big local news
  40. there on a project called Big local news which tries to make data tool and tools
  41. which tries to make data tool and tools to work with data more accessible to the
  42. to work with data more accessible to the local newsrooms across the world I am
  43. local newsrooms across the world I am joined by my co-instructor Simon
  44. joined by my co-instructor Simon Willison Simon would you care to
  45. Willison Simon would you care to introduce yourself sure yeah my name's
  46. introduce yourself sure yeah my name's Simon Willison I've been an open source
  47. Simon Willison I've been an open source developer for nearly 20 years I think I
  48. developer for nearly 20 years I think I worked on what became Django the web
  49. worked on what became Django the web framework more recently I spent the past
  50. framework more recently I spent the past five years working on a project called
  51. five years working on a project called dataset which is open source software
  52. dataset which is open source software aimed at helping people will analyze and
  53. aimed at helping people will analyze and publish their data I did a Stanford
  54. publish their data I did a Stanford Fellowship a few years ago which
  55. Fellowship a few years ago which completely ruined me because I got to
  56. completely ruined me because I got to work on whatever I thought was
  57. work on whatever I thought was interesting and I've continued to do
  58. interesting and I've continued to do that unpaid ever since so I'm coming to
  59. that unpaid ever since so I'm coming to you from uh Half Moon Bay just south of
  60. you from uh Half Moon Bay just south of San Francisco and yeah I'm uh I've
  61. San Francisco and yeah I'm uh I've always been I I spent a lot of my career
  62. always been I I spent a lot of my career journalism adjacent I like writing tools
  63. journalism adjacent I like writing tools and writing software that journalists
  64. and writing software that journalists can use so this this Workshop meshes two
  65. can use so this this Workshop meshes two of my interests really well
  66. of my interests really well all right well thank you for joining us
  67. all right well thank you for joining us so Simon will just be here chiming in
  68. so Simon will just be here chiming in and correcting all my mistakes and um
  69. and correcting all my mistakes and um and helping me kind of work us through
  70. and helping me kind of work us through this material obviously you know
  71. this material obviously you know um
  72. um uh uh uh I do not obviously but let me
  73. uh uh uh I do not obviously but let me just say please interrupt us or ask
  74. just say please interrupt us or ask questions or speak up as we go through
  75. questions or speak up as we go through this stuff we want to make sure that you
  76. this stuff we want to make sure that you guys get it there's five to ten pieces
  77. guys get it there's five to ten pieces of absolutely outrageous nerd jargon
  78. of absolutely outrageous nerd jargon that we're gonna have to like try to
  79. that we're gonna have to like try to struggle to define and explain and I'm
  80. struggle to define and explain and I'm sure we won't be perfect at it or we
  81. sure we won't be perfect at it or we might use some other weird terms that
  82. might use some other weird terms that you haven't encountered before and if we
  83. you haven't encountered before and if we do just stop us or just ask you can just
  84. do just stop us or just ask you can just honestly just interrupt over the
  85. honestly just interrupt over the microphone is fine or just toss
  86. microphone is fine or just toss something in the chat whatever you're
  87. something in the chat whatever you're comfortable with
  88. comfortable with um and that's it so um that's the that's
  89. um and that's it so um that's the that's the deal My Hope Is we can work through
  90. the deal My Hope Is we can work through this and the goal is to show you how to
  91. this and the goal is to show you how to uh make changes to open source software
  92. uh make changes to open source software to look at the code that other folks
  93. to look at the code that other folks have published on the web make a tweak
  94. have published on the web make a tweak and suggest that they include it and
  95. and suggest that they include it and this that process is called a pull
  96. this that process is called a pull request when it's done via the website
  97. request when it's done via the website github.com which is the most popular
  98. github.com which is the most popular code management site there's other words
  99. code management site there's other words for it that's what GitHub calls it and
  100. for it that's what GitHub calls it and our goal is to teach you how to do that
  101. our goal is to teach you how to do that today and this technique is really a
  102. today and this technique is really a basic skill of software development that
  103. basic skill of software development that if you are interested in becoming a
  104. if you are interested in becoming a developer or just a hobbyist who
  105. developer or just a hobbyist who contributes to code you're going to want
  106. contributes to code you're going to want to learn and um for the purposes of the
  107. to learn and um for the purposes of the demonstration everyone who works through
  108. demonstration everyone who works through the class will make a pull request today
  109. the class will make a pull request today to an open source website that I
  110. to an open source website that I maintain which we'll look at in a minute
  111. maintain which we'll look at in a minute before we get into that I'd like
  112. before we get into that I'd like everybody to go to the web address that
  113. everybody to go to the web address that I've put right here in our little help
  114. I've put right here in our little help file and it is at bit dot lead slash
  115. file and it is at bit dot lead slash first hyphen PR and PR is a common piece
  116. first hyphen PR and PR is a common piece of slang for a pull request right so
  117. of slang for a pull request right so there's a there's our first gunky jargon
  118. there's a there's our first gunky jargon so it's bit dot Lee slash first hyphen
  119. so it's bit dot Lee slash first hyphen PR and if you go there you'll see the
  120. PR and if you go there you'll see the script we wrote which we're going to
  121. script we wrote which we're going to walk through together which contains
  122. walk through together which contains everything we're going to cover
  123. everything we're going to cover now before I launch into that
  124. now before I launch into that I want to open it up to everybody who's
  125. I want to open it up to everybody who's come to see if there's any questions so
  126. come to see if there's any questions so before we begin does anybody have any uh
  127. before we begin does anybody have any uh any questions about
  128. any questions about um the class or just things in general
  129. no okay Arky I see you shared the link is that
  130. Arky I see you shared the link is that working for you
  131. I I'll take that as a yes all right everybody so here we go on the site
  132. everybody so here we go on the site let's begin so in the first chapter we
  133. let's begin so in the first chapter we kind of cover what we're going to do
  134. kind of cover what we're going to do here and that is of course make this
  135. here and that is of course make this code contribution which is known as a
  136. code contribution which is known as a pull request the site that everyone will
  137. pull request the site that everyone will be contributing to is called the EE
  138. be contributing to is called the EE Cummings free Poetry archive this is a
  139. Cummings free Poetry archive this is a website that's at the Domain cummings.e
  140. website that's at the Domain cummings.e and it everything about this website is
  141. and it everything about this website is open source software that is hosted on
  142. open source software that is hosted on GitHub and that anyone can contribute to
  143. GitHub and that anyone can contribute to and the mission of this site
  144. and the mission of this site um is to transcribe the Poetry of EE
  145. um is to transcribe the Poetry of EE Cummings as it gradually enters the
  146. Cummings as it gradually enters the public domain
  147. public domain uh the way that copyright law works in
  148. uh the way that copyright law works in the United States is that after a work
  149. the United States is that after a work is created uh it is protected legally as
  150. is created uh it is protected legally as the intellectual property of the author
  151. the intellectual property of the author or the owner of it but then after a
  152. or the owner of it but then after a certain number of years it expires and
  153. certain number of years it expires and it enters What's called the public
  154. it enters What's called the public domain which it effectively becomes open
  155. domain which it effectively becomes open source of its own and anyone is able to
  156. source of its own and anyone is able to resell repackage or remix it in any way
  157. resell repackage or remix it in any way they like we're in an interesting moment
  158. they like we're in an interesting moment now which is each January 1st when the
  159. now which is each January 1st when the next year of old material goes live
  160. next year of old material goes live we're gradually crawling through the
  161. we're gradually crawling through the 1920s right now here in the United
  162. 1920s right now here in the United States which means that many works of
  163. States which means that many works of modernist poetry uh early Cinema uh and
  164. modernist poetry uh early Cinema uh and uh and early popular music are beginning
  165. uh and early popular music are beginning to enter the public domain famously last
  166. to enter the public domain famously last year the Great Gatsby became a public
  167. year the Great Gatsby became a public domain item and so you can look forward
  168. domain item and so you can look forward to
  169. to Simon's graphic novel casting his pets
  170. Simon's graphic novel casting his pets in The Great Gatsby or I don't know what
  171. in The Great Gatsby or I don't know what exactly right but whatever you would
  172. exactly right but whatever you would want to do would be uh totally uh free
  173. want to do would be uh totally uh free at this point and as someone who loves
  174. at this point and as someone who loves open source dog software but also a
  175. open source dog software but also a public domain and is a little bit of an
  176. public domain and is a little bit of an amateur archivist I just took on as a
  177. amateur archivist I just took on as a hobby during the pandemic the um
  178. hobby during the pandemic the um the the mission of trying to open up EE
  179. the the mission of trying to open up EE Cummings work and so for the last couple
  180. Cummings work and so for the last couple of years I've been leading the drive to
  181. of years I've been leading the drive to gradually enter all of the poems into
  182. gradually enter all of the poems into the site as they open and this year on
  183. the site as they open and this year on January 1st a book that came out in 1926
  184. January 1st a book that came out in 1926 called is five which is the fourth book
  185. called is five which is the fourth book by E Cummings entered the public domain
  186. by E Cummings entered the public domain it has 88 poems in the book and
  187. it has 88 poems in the book and currently only 28 of them have been
  188. currently only 28 of them have been entered into the website which is really
  189. entered into the website which is really just the process of transcription
  190. just the process of transcription um I've gone to the Los Angeles Public
  191. um I've gone to the Los Angeles Public Library the Central Library downtown
  192. Library the Central Library downtown where they have a first edition of the
  193. where they have a first edition of the book and I scanned that in and uploaded
  194. book and I scanned that in and uploaded it to the internet archive and so the
  195. it to the internet archive and so the process isn't that beautiful the process
  196. process isn't that beautiful the process of um transcription is really taking the
  197. of um transcription is really taking the copy that appears in these scans and
  198. copy that appears in these scans and keep punching them into a computer file
  199. keep punching them into a computer file that can go into the website okay and
  200. that can go into the website okay and that's all done on github.com Via what's
  201. that's all done on github.com Via what's called a code repository which I'm
  202. called a code repository which I'm looking at right here Simon how would
  203. looking at right here Simon how would you define a code Repository
  204. you define a code Repository so a repository it's
  205. so a repository it's that's a really trick that's a
  206. that's a really trick that's a surprisingly tricky question it's like a
  207. surprisingly tricky question it's like a folder it's a directory on a computer
  208. folder it's a directory on a computer where it would be a product where you
  209. where it would be a product where you keep all of the code that exists in a
  210. keep all of the code that exists in a single project
  211. single project um with with a GitHub repository that's
  212. um with with a GitHub repository that's that's the thing that you've then
  213. that's the thing that you've then published and either publicly so anyone
  214. published and either publicly so anyone can see it or GitHub also lets you have
  215. can see it or GitHub also lets you have private repositories that you can use to
  216. private repositories that you can use to collaborate with other people so um
  217. collaborate with other people so um there are there are people who will
  218. there are there are people who will debate how much should go into
  219. debate how much should go into repository let's say put everything that
  220. repository let's say put everything that your company does in a single repository
  221. your company does in a single repository have a they call it a um a mono
  222. have a they call it a um a mono repository this is not a debate for
  223. repository this is not a debate for today for for our purposes something
  224. today for for our purposes something like cummings.ee is a perfect example of
  225. like cummings.ee is a perfect example of the size of project you might want to
  226. the size of project you might want to have an individual project uh repository
  227. have an individual project uh repository for
  228. for right so all the code that makes the
  229. right so all the code that makes the website that we're looking at right here
  230. website that we're looking at right here everything that puts this together is
  231. everything that puts this together is contained within this kind of magic
  232. contained within this kind of magic folder hosted by github.com and because
  233. folder hosted by github.com and because I've made the code open source AKA open
  234. I've made the code open source AKA open to the Public's review I'm actually able
  235. to the Public's review I'm actually able to host it for free which is one of the
  236. to host it for free which is one of the nice things about GitHub and one of the
  237. nice things about GitHub and one of the chief reasons why it's become the
  238. chief reasons why it's become the dominant place to find open source
  239. dominant place to find open source software in a sense GitHub is
  240. software in a sense GitHub is effectively a social network for these
  241. effectively a social network for these these code repositories or these folders
  242. these code repositories or these folders and So within this website you can find
  243. and So within this website you can find the code that powers Django the project
  244. the code that powers Django the project that Simon worked on you can find the
  245. that Simon worked on you can find the code that um
  246. code that um that that what was on the initial space
  247. that that what was on the initial space the initial space missions from NASA you
  248. the initial space missions from NASA you can find the code that runs inside of
  249. can find the code that runs inside of your smart watch and just literally tens
  250. your smart watch and just literally tens of thousands or hundreds of thousands of
  251. of thousands or hundreds of thousands of software projects each have a page like
  252. software projects each have a page like this one that's Project Specific where
  253. this one that's Project Specific where they store all of the files that kind of
  254. they store all of the files that kind of make the application but then they also
  255. make the application but then they also collaborate with other developers to
  256. collaborate with other developers to carefully make changes to that code
  257. carefully make changes to that code using a system called Version Control
  258. using a system called Version Control which is just really computer
  259. which is just really computer programming tricks for very carefully
  260. programming tricks for very carefully managing edits to individual files to
  261. managing edits to individual files to make sure you don't break the code or
  262. make sure you don't break the code or the two people don't make conflicting
  263. the two people don't make conflicting changes
  264. changes uh any questions about GitHub or
  265. uh any questions about GitHub or repositories
  266. no okay so yeah by GitHub is there any good tutorial or
  267. by GitHub is there any good tutorial or book to explain this because every time
  268. book to explain this because every time I've tried to learn it I've just given
  269. I've tried to learn it I've just given up
  270. up and you get stuck with trying to like uh
  271. and you get stuck with trying to like uh create a repository with your terminal
  272. create a repository with your terminal or where do you get where do you get
  273. or where do you get where do you get caught up
  274. caught up um
  275. I usually lose track of how to make the whole thing work
  276. whole thing work yeah I mean it's just it's it's one of
  277. yeah I mean it's just it's it's one of these things that's especially tricky
  278. these things that's especially tricky because you have on the web you have
  279. because you have on the web you have this magic folder that exists also as a
  280. this magic folder that exists also as a web page or thing but then traditionally
  281. web page or thing but then traditionally when you're then working on those code
  282. when you're then working on those code files you have to have a copy of those
  283. files you have to have a copy of those files on your computer as well right and
  284. files on your computer as well right and so part of the dance of computer
  285. so part of the dance of computer programming traditionally has been the
  286. programming traditionally has been the to and fro of the changes that you make
  287. to and fro of the changes that you make on your computer versus what you submit
  288. on your computer versus what you submit and send to the sort of origin as they
  289. and send to the sort of origin as they call it the sort of Mothership
  290. call it the sort of Mothership repository that's on the web
  291. repository that's on the web go ahead Simon so um GitHub is the
  292. go ahead Simon so um GitHub is the website git is the software you use to
  293. website git is the software you use to manage the changes git has notoriously
  294. manage the changes git has notoriously it's one of the hardest pieces of
  295. it's one of the hardest pieces of software to use in all of computer
  296. software to use in all of computer programming like I've been using it for
  297. programming like I've been using it for probably 15 years I use about five
  298. probably 15 years I use about five percent of the functionality and I
  299. percent of the functionality and I frequently find myself getting confused
  300. frequently find myself getting confused when I dive into some of the more
  301. when I dive into some of the more complicated belts oh good it's not just
  302. complicated belts oh good it's not just me no oh no that's really important to
  303. me no oh no that's really important to understand it it is a nightmare to use
  304. understand it it is a nightmare to use yes everyone acknowledges that the thing
  305. yes everyone acknowledges that the thing is that because we all use it it's
  306. is that because we all use it it's difficult to adopt something else and
  307. difficult to adopt something else and what we're going to show you today is
  308. what we're going to show you today is ways to use the GitHub web interface to
  309. ways to use the GitHub web interface to avoid quite a lot of the horrors of
  310. avoid quite a lot of the horrors of having to use git so this Workshop you
  311. having to use git so this Workshop you won't be having to open a terminal at
  312. won't be having to open a terminal at all but you'll still be able to create
  313. all but you'll still be able to create edits and propose changes that's exactly
  314. edits and propose changes that's exactly right and and like I think Ron that the
  315. right and and like I think Ron that the terminal stuff I've seen trip up
  316. terminal stuff I've seen trip up literally hundreds of students teaching
  317. literally hundreds of students teaching this stuff if that's where you're having
  318. this stuff if that's where you're having trouble I think the stuff we'll cover
  319. trouble I think the stuff we'll cover today which is pretty new technology
  320. today which is pretty new technology will keep you entirely in the browser
  321. will keep you entirely in the browser and I think you can do quite a lot of
  322. and I think you can do quite a lot of coding that way it kind of depends what
  323. coding that way it kind of depends what you're trying to do
  324. you're trying to do um but if you want something that's in
  325. um but if you want something that's in between everything in the browser and
  326. between everything in the browser and the hell of the terminal there's an
  327. the hell of the terminal there's an application called GitHub desktop and
  328. application called GitHub desktop and it's really intended to be a bridge
  329. it's really intended to be a bridge between the copy that's on your computer
  330. between the copy that's on your computer and the copy that's on the web and I
  331. and the copy that's on the web and I know that quite a lot of developers even
  332. know that quite a lot of developers even people who are very skilled with the
  333. people who are very skilled with the terminal prefer tools like that just
  334. terminal prefer tools like that just because they think they're easier
  335. because they think they're easier and so my advice would be to seek out
  336. and so my advice would be to seek out GitHub desktop Beyond this class perhaps
  337. GitHub desktop Beyond this class perhaps also github.com has a pretty excellent
  338. also github.com has a pretty excellent help section and if you haven't looked
  339. help section and if you haven't looked at it in a while I would just go look at
  340. at it in a while I would just go look at their really introductory materials like
  341. their really introductory materials like how do I even get started and I bet you
  342. how do I even get started and I bet you um it would be more helpful than the
  343. um it would be more helpful than the last time you looked
  344. last time you looked all right
  345. all right so now the thing I need everyone to do
  346. so now the thing I need everyone to do is to log into github.com so if you
  347. is to log into github.com so if you already have an account great just log
  348. already have an account great just log into it if you don't I need you to make
  349. into it if you don't I need you to make one now okay and I am going to open up
  350. one now okay and I am going to open up an incognito web browser and try to do
  351. an incognito web browser and try to do that myself okay
  352. that myself okay I think I have
  353. I think I have an account I made for this but let's see
  354. an account I made for this but let's see if it shows up
  355. uh here's an older one maybe I can use that
  356. because I need to log in as just like a as a regular old user like you guys not
  357. as a regular old user like you guys not as the administrator of
  358. as the administrator of uh the the cummings.ee repository
  359. uh the the cummings.ee repository because I'm the administrator that I
  360. because I'm the administrator that I have special powers that the average
  361. have special powers that the average person on GitHub doesn't if you think
  362. person on GitHub doesn't if you think about it
  363. about it um
  364. um if you think about it
  365. if you think about it um repository can be open source it can
  366. um repository can be open source it can be legible and readable and accessible
  367. be legible and readable and accessible to all people but you can't let edits to
  368. to all people but you can't let edits to the code be accessible to all people
  369. the code be accessible to all people because then anybody could hack
  370. because then anybody could hack everything right and so the way that
  371. everything right and so the way that open source software is managed you know
  372. open source software is managed you know as as well as it is managed is that you
  373. as as well as it is managed is that you have a group of sort of super users who
  374. have a group of sort of super users who are often called maintainers or owners
  375. are often called maintainers or owners and they are the ones who manage what is
  376. and they are the ones who manage what is allowed to be let into the sort of main
  377. allowed to be let into the sort of main or Master collection of code in the
  378. or Master collection of code in the repository and then everyone else as an
  379. repository and then everyone else as an outsider is allowed to read the code to
  380. outsider is allowed to read the code to run the code on their own independently
  381. run the code on their own independently right but then also make changes and
  382. right but then also make changes and suggest those changes go back into the
  383. suggest those changes go back into the process right and that is where the
  384. process right and that is where the maintainers then come in to try to fix
  385. maintainers then come in to try to fix it and we'll see how all that works okay
  386. it and we'll see how all that works okay so I'm going to make a new
  387. so I'm going to make a new GitHub account right here
  388. GitHub account right here that needs a number okay
  389. that needs a number okay you can you guys can watch me flail
  390. you can you guys can watch me flail okay
  391. how about that okay I'm gonna generate a password
  392. there we go what should my news username be guys
  393. uh first PR see if you can get that one ah how about that
  394. ah how about that uh I do not want emails no
  395. uh I do not want emails no all right then you have to solve a
  396. all right then you have to solve a little puzzle this is where we prove
  397. little puzzle this is where we prove we're human I think it's that one
  398. we're human I think it's that one and then it's this one the piggies
  399. and then it's this one the piggies okay now we've created our account
  400. okay now we've created our account it's gonna email me something okay let's
  401. it's gonna email me something okay let's see if I get that email a launch code I
  402. see if I get that email a launch code I haven't seen this this flow in a very
  403. haven't seen this this flow in a very long time they've done all sorts of
  404. long time they've done all sorts of things to it yeah
  405. things to it yeah there's my okay I just got the email it
  406. there's my okay I just got the email it is 916-10570
  407. okay 50 plus okay
  408. sorry as a person who works with data all day I love to pollute other people's
  409. all day I love to pollute other people's data
  410. data um it's not a nice thing about me okay
  411. um it's not a nice thing about me okay continue for free
  412. continue for free whoa GitHub whoa that's that's what
  413. whoa GitHub whoa that's that's what Microsoft pays for right there dude
  414. Microsoft pays for right there dude all right so we're in I now have a
  415. all right so we're in I now have a totally blank GitHub
  416. totally blank GitHub um account right I'm a total newbie on
  417. um account right I'm a total newbie on the site you can see in the upper right
  418. the site you can see in the upper right there's ways to customize your account
  419. there's ways to customize your account if you haven't done it I'd recommend
  420. if you haven't done it I'd recommend turning on two-factor authentication
  421. turning on two-factor authentication though I won't do that here today and
  422. though I won't do that here today and you can see there's really not a lot
  423. you can see there's really not a lot going on here but one of the first
  424. going on here but one of the first buttons that's available to you is
  425. buttons that's available to you is create a repository right because that's
  426. create a repository right because that's one of the that's what GitHub is for is
  427. one of the that's what GitHub is for is to create these code folders and so if
  428. to create these code folders and so if you wanted to you could create a public
  429. you wanted to you could create a public or private uh Repository
  430. or private uh Repository they hold your hold your work you don't
  431. they hold your hold your work you don't need to do that here for today but just
  432. need to do that here for today but just this is just an example of kind of why
  433. this is just an example of kind of why it's there and now we'll see if I go to
  434. it's there and now we'll see if I go to the address
  435. the address for
  436. for um cummings.ee
  437. um cummings.ee um what I see here is slightly different
  438. um what I see here is slightly different than in my other browser tab where I am
  439. than in my other browser tab where I am an administrator where here you can see
  440. an administrator where here you can see there's a settings thing that allows me
  441. there's a settings thing that allows me to muck with the repo and here you can
  442. to muck with the repo and here you can see there is not right because now I'm
  443. see there is not right because now I'm an outsider contributor I'm not the
  444. an outsider contributor I'm not the maintainer and so what I can do is a
  445. maintainer and so what I can do is a little more restricted
  446. little more restricted all right so has everybody been able or
  447. all right so has everybody been able or already have a GitHub account are we all
  448. already have a GitHub account are we all into the site and ready to go
  449. into the site and ready to go great I see some thumbs up
  450. great I see some thumbs up if anybody's having issues it's totally
  451. if anybody's having issues it's totally fine just feel free to speak up
  452. if you haven't done it yet in chapter two of the class there's a link down
  453. two of the class there's a link down here at the bottom that goes to the code
  454. here at the bottom that goes to the code repository I'd just like you to open
  455. repository I'd just like you to open that in a tab so that you're in the same
  456. that in a tab so that you're in the same place that I am right here okay once you
  457. place that I am right here okay once you have that up you have the Repository
  458. have that up you have the Repository okay
  459. okay so once we have the code we should maybe
  460. so once we have the code we should maybe like look at what's actually in here a
  461. like look at what's actually in here a little bit you can see a sort of
  462. little bit you can see a sort of directory structure like you would find
  463. directory structure like you would find on your Windows or Apple computer
  464. on your Windows or Apple computer um where it sort of has files and
  465. um where it sort of has files and folders that are organized
  466. folders that are organized um within like a little tree structure
  467. um within like a little tree structure pretty traditional stuff
  468. pretty traditional stuff um this particular collection of files
  469. um this particular collection of files is everything necessary to build the
  470. is everything necessary to build the website and it's organized into what's
  471. website and it's organized into what's called a generically a framework a
  472. called a generically a framework a framework is just like a tool belt of
  473. framework is just like a tool belt of code that's been put together by other
  474. code that's been put together by other developers to make it easier to just get
  475. developers to make it easier to just get stuff done so Django which Simon
  476. stuff done so Django which Simon mentioned is what you might call a
  477. mentioned is what you might call a framework it's a bunch of python code
  478. framework it's a bunch of python code that does a million different things
  479. that does a million different things that make it easier to build a dynamic
  480. that make it easier to build a dynamic website as well as do other things
  481. website as well as do other things um you may have heard of other
  482. um you may have heard of other Frameworks called like Ruby on Rails or
  483. Frameworks called like Ruby on Rails or react or Gatsby and these are all just
  484. react or Gatsby and these are all just different sort of competing systems in
  485. different sort of competing systems in different programming languages to
  486. different programming languages to create uh you know tool belts that make
  487. create uh you know tool belts that make it easier to get stuff done and it just
  488. it easier to get stuff done and it just so happens it's not that important but
  489. so happens it's not that important but it just so happens that this repository
  490. it just so happens that this repository in this website uses a framework called
  491. in this website uses a framework called Baker which was invented at the Los
  492. Baker which was invented at the Los Angeles Times to help us build all of
  493. Angeles Times to help us build all of our special projects and so you know you
  494. our special projects and so you know you want to do live election results outside
  495. want to do live election results outside of the content management system or a
  496. of the content management system or a big long beautiful scrolling feature
  497. big long beautiful scrolling feature right you might need to write your own
  498. right you might need to write your own custom code and so Baker was the tool
  499. custom code and so Baker was the tool that we wrote to do that it's in use
  500. that we wrote to do that it's in use currently at the LA times as well as at
  501. currently at the LA times as well as at propublica the Baltimore banner and the
  502. propublica the Baltimore banner and the city uh if you're interested in learning
  503. city uh if you're interested in learning more about Baker we have a whole
  504. more about Baker we have a whole separate class about that which I taught
  505. separate class about that which I taught at the night car conference last year
  506. at the night car conference last year it's called first visual story and it
  507. it's called first visual story and it will guide you through how to use Baker
  508. will guide you through how to use Baker or really any uh sort of static site
  509. or really any uh sort of static site framework because it's called to build
  510. framework because it's called to build your own custom page that you can
  511. your own custom page that you can publish outside of the outside of the
  512. publish outside of the outside of the content management system where you work
  513. content management system where you work or just really your own micro site and
  514. or just really your own micro site and so because I was familiar with using
  515. so because I was familiar with using that at the LA Times I used it to make
  516. that at the LA Times I used it to make this little microsite cummings.ee and it
  517. this little microsite cummings.ee and it really can be used to make almost any
  518. really can be used to make almost any website if you used it properly so we
  519. website if you used it properly so we don't need to learn everything about how
  520. don't need to learn everything about how it works but you know one challenge of
  521. it works but you know one challenge of contributing to an open source project
  522. contributing to an open source project is even if you just want to correct a
  523. is even if you just want to correct a typo or add a very narrow feature or fix
  524. typo or add a very narrow feature or fix a small bug you do kind of have to go
  525. a small bug you do kind of have to go through the sort of like sussing out
  526. through the sort of like sussing out process of like how has this thing even
  527. process of like how has this thing even put together and where are all our other
  528. put together and where are all our other things and sort of gradually learning
  529. things and sort of gradually learning kind of the system by which the
  530. kind of the system by which the developers have put hello and welcome to
  531. developers have put hello and welcome to git and GitHub for poets this is
  532. git and GitHub for poets this is and
  533. and um
  534. um and uh and you can and so here we won't
  535. and uh and you can and so here we won't cover everything that has to do with it
  536. cover everything that has to do with it but I can just tell you that
  537. but I can just tell you that in the underscore data folder
  538. in the underscore data folder there's another folder called poems I
  539. there's another folder called poems I just ask everybody to click in here and
  540. just ask everybody to click in here and then into is five right and so I just
  541. then into is five right and so I just happen to know this is the place to go
  542. happen to know this is the place to go because I created this repository and so
  543. because I created this repository and so in the data directory there's a there's
  544. in the data directory there's a there's a there's a folder for each of the four
  545. a there's a folder for each of the four books that we've entered and then in
  546. books that we've entered and then in each of those there's a file for each of
  547. each of those there's a file for each of the poems right and so uh we could see
  548. the poems right and so uh we could see that for instance in the first file that
  549. that for instance in the first file that we're looking at which is for the the
  550. we're looking at which is for the the first poem and the five American series
  551. first poem and the five American series we could see a file that contains the
  552. we could see a file that contains the poem and some extra metadata if I go to
  553. poem and some extra metadata if I go to cummings.ee
  554. cummings.ee and I click into the location of that
  555. and I click into the location of that same poem here we can see that the exact
  556. same poem here we can see that the exact same stuff
  557. same stuff that's on the page is in that data file
  558. that's on the page is in that data file and the way that the website works which
  559. and the way that the website works which we won't cover in in any depth is it
  560. we won't cover in in any depth is it really it takes the data from these
  561. really it takes the data from these files and it templates them into the
  562. files and it templates them into the website and that's how this kind of site
  563. website and that's how this kind of site works it's using that particular
  564. works it's using that particular framework all of those things are just
  565. framework all of those things are just opinionated decisions I made as the
  566. opinionated decisions I made as the initial developer and are up for debate
  567. initial developer and are up for debate but you know part of figuring out or
  568. but you know part of figuring out or contributing to somebody else's code is
  569. contributing to somebody else's code is kind of like sniffing around how it's
  570. kind of like sniffing around how it's set up and figuring out what you might
  571. set up and figuring out what you might want to do or don't do like Simon when
  572. want to do or don't do like Simon when you first encounter someone else's code
  573. you first encounter someone else's code how do you figure out what it's doing
  574. how do you figure out what it's doing but it depends on which programming
  575. but it depends on which programming language they're using if it's a
  576. language they're using if it's a JavaScript thing there's a file called
  577. JavaScript thing there's a file called package.json you can go and look at if
  578. package.json you can go and look at if it's python you can look at
  579. it's python you can look at requirements.txt but generally I hope
  580. requirements.txt but generally I hope that they've got a readme that explains
  581. that they've got a readme that explains what's going on so the good projects do
  582. what's going on so the good projects do a lot of projects don't bother and then
  583. a lot of projects don't bother and then often what I'll do is I'll actually use
  584. often what I'll do is I'll actually use the GitHub search interface so I'll say
  585. the GitHub search interface so I'll say okay I know that there's a poem that
  586. okay I know that there's a poem that uses the word uses the the word sinuous
  587. uses the word uses the the word sinuous in there I will search for sinuous and
  588. in there I will search for sinuous and that will show me which file here we go
  589. that will show me which file here we go and so now I've gone from looking at the
  590. and so now I've gone from looking at the front page we're actually having an idea
  591. front page we're actually having an idea of how this thing is structured so often
  592. of how this thing is structured so often I I will I will use github's code search
  593. I I will I will use github's code search quite extensively just to try and figure
  594. quite extensively just to try and figure out okay this thing I want to this this
  595. out okay this thing I want to this this page on the website where is that in the
  596. page on the website where is that in the repository and that'll get me there
  597. repository and that'll get me there really quickly mm-hmm student
  598. really quickly mm-hmm student and then also if you're looking to
  599. and then also if you're looking to contribute a really natural place to
  600. contribute a really natural place to look is What's called the issue tracker
  601. look is What's called the issue tracker or the issues tab so if you see here in
  602. or the issues tab so if you see here in the upper left where my mouse is there's
  603. the upper left where my mouse is there's just a little link that says issue with
  604. just a little link that says issue with I guess a bullseye I'm not even sure I
  605. I guess a bullseye I'm not even sure I know what that is
  606. know what that is um and in it and this is like you know
  607. um and in it and this is like you know like you might have in your work uh
  608. like you might have in your work uh workplace if you work anywhere close to
  609. workplace if you work anywhere close to software this is sort of an open source
  610. software this is sort of an open source version of a classic ticket manager like
  611. version of a classic ticket manager like you might have um in jira or any other
  612. you might have um in jira or any other of those tools like that and it's really
  613. of those tools like that and it's really a place where the maintainers of a
  614. a place where the maintainers of a project but also the users
  615. project but also the users um can uh can raise bugs can propose
  616. um can uh can raise bugs can propose features can hold discussions about what
  617. features can hold discussions about what to do with the website and it is a venue
  618. to do with the website and it is a venue for kind of managing
  619. for kind of managing um little changes that get made to the
  620. um little changes that get made to the code over time right I'm going to set a
  621. code over time right I'm going to set a quick plug for GitHub issues if you've
  622. quick plug for GitHub issues if you've used Jerry you probably hate jira I I
  623. used Jerry you probably hate jira I I don't think I've ever met somebody who
  624. don't think I've ever met somebody who who didn't absolutely despise it it does
  625. who didn't absolutely despise it it does the job GitHub issues is the only issue
  626. the job GitHub issues is the only issue tracker I've used that I don't hate and
  627. tracker I've used that I don't hate and this is this is high price indeed I've
  628. this is this is high price indeed I've run my life out of it I've got like
  629. run my life out of it I've got like private GitHub repositories for
  630. private GitHub repositories for households chores and things that use
  631. households chores and things that use GitHub issues because it works so well
  632. GitHub issues because it works so well for me
  633. for me yeah it's pretty nice tool and just to
  634. yeah it's pretty nice tool and just to show it like on another project an open
  635. show it like on another project an open source project you've probably heard
  636. source project you've probably heard something about in the last few months
  637. something about in the last few months is Mastodon which is an attempt to
  638. is Mastodon which is an attempt to create an open source competitor to
  639. create an open source competitor to Twitter
  640. Twitter and you can see here this is of course a
  641. and you can see here this is of course a very active project that's been around a
  642. very active project that's been around a number of years and you see here if you
  643. number of years and you see here if you look in their issues tracker you'll see
  644. look in their issues tracker you'll see that there's more than 3 000 issues
  645. that there's more than 3 000 issues where people all around the world who
  646. where people all around the world who are surging into the site have been
  647. are surging into the site have been suggesting things I think I have one in
  648. suggesting things I think I have one in here if we search for me
  649. here if we search for me let's see if we can find it
  650. let's see if we can find it no how do you filter for person can I
  651. no how do you filter for person can I use a colon pale wire
  652. oh no that didn't work at all that's everything
  653. everything your issues how about that there we go
  654. if that worked no hmm I definitely filed a bug whatever oh I'm not logged in as
  655. a bug whatever oh I'm not logged in as me I'm logged in as this other weird guy
  656. me I'm logged in as this other weird guy there you go that makes sense
  657. there you go that makes sense ah
  658. ah so just to just to like make the point I
  659. so just to just to like make the point I was using Mastodon as I'm as I'm
  660. was using Mastodon as I'm as I'm exploring it like everyone else in the
  661. exploring it like everyone else in the world and uh I thought I found what I
  662. world and uh I thought I found what I thought to be a bug which was that um in
  663. thought to be a bug which was that um in the color choice that they had made for
  664. the color choice that they had made for kind of the toot button uh wasn't
  665. kind of the toot button uh wasn't passing a certain kind of accessibility
  666. passing a certain kind of accessibility test not that it was such a crime or
  667. test not that it was such a crime or whatever and so what I did is I went
  668. whatever and so what I did is I went into their issue tracker and I tried to
  669. into their issue tracker and I tried to document this bug right and so it was
  670. document this bug right and so it was just like hey I ran this kind of this
  671. just like hey I ran this kind of this one particular test for accessibility I
  672. one particular test for accessibility I found that uh the colors are you know
  673. found that uh the colors are you know totally up to Snuff uh I did an
  674. totally up to Snuff uh I did an experiment where maybe we could change
  675. experiment where maybe we could change it to something else it's within the
  676. it to something else it's within the color scheme and so hey what do you
  677. color scheme and so hey what do you think of that idea right and so this is
  678. think of that idea right and so this is basically me filing a bug report with
  679. basically me filing a bug report with the the owners of this repository and
  680. the the owners of this repository and just kind of seeing what they think
  681. just kind of seeing what they think trying to document what I was thinking
  682. trying to document what I was thinking so that you know they don't have to read
  683. so that you know they don't have to read my mind and you know somebody might get
  684. my mind and you know somebody might get around to it at some point I think this
  685. around to it at some point I think this particular group of developers is pretty
  686. particular group of developers is pretty flooded with activity and so I don't
  687. flooded with activity and so I don't really blame them for not having got to
  688. really blame them for not having got to it yet but that's an example of kind of
  689. it yet but that's an example of kind of a real life bug report that I made
  690. a real life bug report that I made myself right and then the pull request
  691. myself right and then the pull request or the change would be intended to
  692. or the change would be intended to address that right and so issues are
  693. address that right and so issues are often the targets of pull requests or
  694. often the targets of pull requests or code changes where you're saying well we
  695. code changes where you're saying well we have this particular issue that we want
  696. have this particular issue that we want to address I've got the code that's
  697. to address I've got the code that's intended to address it and those two
  698. intended to address it and those two things kind of go together and so if we
  699. things kind of go together and so if we look back at the cummings.ee
  700. look back at the cummings.ee issue tracker I've created a couple
  701. issue tracker I've created a couple dozen tickets right here for individual
  702. dozen tickets right here for individual poems that are missing from the website
  703. poems that are missing from the website right so if we look at the page for is
  704. right so if we look at the page for is five on cummings.ee we can see that only
  705. five on cummings.ee we can see that only 28 of the books 88 poems have been
  706. 28 of the books 88 poems have been entered there's 60 to go and the ones
  707. entered there's 60 to go and the ones that haven't been entered are grayed out
  708. that haven't been entered are grayed out in the table of contents right and what
  709. in the table of contents right and what I've done is I went through and picked
  710. I've done is I went through and picked about 20 that aren't very long and made
  711. about 20 that aren't very long and made tickets for each of them
  712. tickets for each of them and then in each ticket I included a
  713. and then in each ticket I included a link to the file in the file system
  714. link to the file in the file system where the where the poem should go and a
  715. where the where the poem should go and a link to the scan from the LA Public
  716. link to the scan from the LA Public Library where the poem it appears on the
  717. Library where the poem it appears on the page right and so what I'm now going to
  718. page right and so what I'm now going to ask is that we just kind of go through
  719. ask is that we just kind of go through everybody who's here as a participant
  720. everybody who's here as a participant and we kind of assign different people
  721. and we kind of assign different people tickets right and there actually is a
  722. tickets right and there actually is a system for doing this within
  723. system for doing this within um the issue tracker which I'll show
  724. um the issue tracker which I'll show with like I'll use Simon as my example
  725. with like I'll use Simon as my example Simon you're going to enter one right uh
  726. Simon you're going to enter one right uh definitely yep okay so I'm gonna go down
  727. definitely yep okay so I'm gonna go down to the one at the bottom and just start
  728. to the one at the bottom and just start there and I'm going to say supposing I
  729. there and I'm going to say supposing I dreamed this is going to be Simon's
  730. dreamed this is going to be Simon's assignment and um within the interface
  731. assignment and um within the interface of the ticket there's ways for tagging
  732. of the ticket there's ways for tagging things and grouping them and then
  733. things and grouping them and then there's also a way of assigning people
  734. there's also a way of assigning people to manage the uh ticket is that your
  735. to manage the uh ticket is that your username Simon no I don't think it's
  736. username Simon no I don't think it's going to let you because I'm not a
  737. going to let you because I'm not a current participant in this response
  738. current participant in this response tree that's annoying so okay
  739. it looks like you have to add people as maintainers so maybe the assigning
  740. maintainers so maybe the assigning function isn't quite going to work we
  741. function isn't quite going to work we can assign with comments instead yeah so
  742. can assign with comments instead yeah so I'm going to say Simon you want to take
  743. I'm going to say Simon you want to take this one and then here you can see
  744. this one and then here you can see there's kind of a comment thread that
  745. there's kind of a comment thread that referrals in the issues where you can
  746. referrals in the issues where you can have a discussion about what's going on
  747. have a discussion about what's going on so Simon's going to take that one
  748. so Simon's going to take that one um let me just call up our chat and we
  749. um let me just call up our chat and we have 10 folks in the chat I'm just going
  750. have 10 folks in the chat I'm just going to go through everybody and uh assign
  751. to go through everybody and uh assign each of you one to manage I won't tag
  752. each of you one to manage I won't tag you or do whatever we'll just I just
  753. you or do whatever we'll just I just want to make sure we don't have two
  754. want to make sure we don't have two people doing the same poem is all right
  755. people doing the same poem is all right and this is where the software can
  756. and this is where the software can really be helpful for divvying things up
  757. really be helpful for divvying things up so that you know people don't end up
  758. so that you know people don't end up repeating each other's work and so just
  759. repeating each other's work and so just looking at our class list Ron you're the
  760. looking at our class list Ron you're the next one on the list
  761. next one on the list Ron I'm gonna give you nobody wears a
  762. Ron I'm gonna give you nobody wears a yellow that's ticket number one eight
  763. yellow that's ticket number one eight two okay
  764. two okay all right
  765. all right next on the list is Adrian Adrian I'm
  766. next on the list is Adrian Adrian I'm gonna give you it is so long since my
  767. gonna give you it is so long since my heart has been with yours that's ticket
  768. heart has been with yours that's ticket number one eight three all right
  769. Archie Archie I'm gonna give you number one eight four which is if within
  770. one eight four which is if within tonight's erect if within tonight's
  771. tonight's erect if within tonight's erect goes to arkey at number 184
  772. erect goes to arkey at number 184 Jose you're going to get number 185
  773. Jose you're going to get number 185 which is I go to this window
  774. which is I go to this window Arky is number one eight five
  775. Arky is number one eight five that's Jose Jose's number 185 arky's
  776. that's Jose Jose's number 185 arky's number one eight four
  777. number one eight four Michael you're going to be number 186
  778. Michael you're going to be number 186 which is touching you I say it being
  779. which is touching you I say it being spring
  780. spring being one of the classic words in ee
  781. being one of the classic words in ee Comics poetry recurs Through The Years
  782. Comics poetry recurs Through The Years in many many poems touching you I say it
  783. in many many poems touching you I say it being spring goes to Michael
  784. being spring goes to Michael Sean you got number one eight seven
  785. Sean you got number one eight seven that's our touching Hearts slenderly
  786. that's our touching Hearts slenderly comprehend
  787. comprehend our touching Hearts slenderly comprehend
  788. our touching Hearts slenderly comprehend number 187 goes to Sean and then Tom
  789. number 187 goes to Sean and then Tom I've got you at number 189 with poets
  790. I've got you at number 189 with poets yegs and thirsties Poets yangs and
  791. yegs and thirsties Poets yangs and thirsties number 189 goes to Tom okay so
  792. thirsties number 189 goes to Tom okay so you can go in and you can leave a
  793. you can go in and you can leave a comment if you just want to mark it but
  794. comment if you just want to mark it but what I really ask you to do for instance
  795. what I really ask you to do for instance Tom is to go in here and open these two
  796. Tom is to go in here and open these two links into two different tabs so that
  797. links into two different tabs so that you have both the empty file and the uh
  798. you have both the empty file and the uh the poem you're gonna transcribe I'm
  799. the poem you're gonna transcribe I'm gonna give myself a poem
  800. gonna give myself a poem um
  801. um yes
  802. I'm going to go with reasoned irrefutable unastered
  803. irrefutable unastered all right which I hope is not how you
  804. all right which I hope is not how you feel after this class
  805. that's going to be assigned to me and just to kind of make the Point tickets
  806. just to kind of make the Point tickets can be assigned once you're associated
  807. can be assigned once you're associated with a repository there's kind of a
  808. with a repository there's kind of a process here for just like tagging
  809. process here for just like tagging people and sticking them in and now this
  810. people and sticking them in and now this ticket belongs to me right and there's a
  811. ticket belongs to me right and there's a whole set of buttons and things to do
  812. whole set of buttons and things to do all kinds of stuff with issues and to
  813. all kinds of stuff with issues and to manage them
  814. manage them all right
  815. all right so everybody's got their issue
  816. Okay cool so now we're almost ready to begin work there's just one more piece
  817. begin work there's just one more piece of jargony software we got to cover
  818. of jargony software we got to cover which is yaml okay so you yaml y-a-m-l
  819. which is yaml okay so you yaml y-a-m-l you can see it in the file extension of
  820. you can see it in the file extension of your poetry file Simon what's yaml
  821. yaml ain't a mock-up language or very there have been various acronyms over
  822. there have been various acronyms over time the most recent one is that
  823. time the most recent one is that right so yaml is it's it's a file format
  824. right so yaml is it's it's a file format it's an acronym and it's really just a
  825. it's an acronym and it's really just a data storage language that is used
  826. data storage language that is used across a lot of different programming
  827. across a lot of different programming domains in different places just to hold
  828. domains in different places just to hold data and it's so it's sort of like a
  829. data and it's so it's sort of like a single row in a spreadsheet is one way
  830. single row in a spreadsheet is one way to think about a yaml file it can do
  831. to think about a yaml file it can do more than that but that's one way to
  832. more than that but that's one way to think about it and each one of these
  833. think about it and each one of these yaml files contains all the metadata
  834. yaml files contains all the metadata necessary for an individual poem just to
  835. necessary for an individual poem just to refer back to the one we were looking at
  836. refer back to the one we were looking at initially you can see that the title of
  837. initially you can see that the title of the poem is there the first line of the
  838. the poem is there the first line of the poem is there which is in an index
  839. poem is there which is in an index Elsewhere on the site and then most
  840. Elsewhere on the site and then most importantly the content of the poem is
  841. importantly the content of the poem is in an attribute called text so the the
  842. in an attribute called text so the the the value that's before the colon is
  843. the value that's before the colon is like the name of the column or the name
  844. like the name of the column or the name of the the the the the key of the value
  845. of the the the the the key of the value and then following the colon is the
  846. and then following the colon is the value itself and you can see in our
  847. value itself and you can see in our documentation that yaml supports you
  848. documentation that yaml supports you know uh strings numbers and then lists
  849. know uh strings numbers and then lists and also nested uh objects as well and
  850. and also nested uh objects as well and so you can kind of use yaml to structure
  851. so you can kind of use yaml to structure kind of whatever you want right but in
  852. kind of whatever you want right but in the case of the Cummings ee repository
  853. the case of the Cummings ee repository it's intended to structure a poem right
  854. it's intended to structure a poem right so I sort of invented a very simple uh
  855. so I sort of invented a very simple uh set of metadata for storing those pumps
  856. set of metadata for storing those pumps and so our mission is going to be to
  857. and so our mission is going to be to edit the yaml file that you've been
  858. edit the yaml file that you've been assigned right and mine was
  859. assigned right and mine was uh this one to add that text attribute
  860. uh this one to add that text attribute and then to type in the poem all right
  861. and then to type in the poem all right so
  862. so let's do it Sean you raised your hand
  863. let's do it Sean you raised your hand what's up man
  864. what's up man I was just curious if you could mention
  865. I was just curious if you could mention what part of your code is parsing the
  866. what part of your code is parsing the yaml text strings and actually putting
  867. yaml text strings and actually putting them like turning them into HTML on the
  868. them like turning them into HTML on the website just for reference later I'd be
  869. website just for reference later I'd be curious of course so the underscore data
  870. curious of course so the underscore data folder in a baker project this is
  871. folder in a baker project this is something particular to Baker right so
  872. something particular to Baker right so in the baker framework any file that's
  873. in the baker framework any file that's put into the underscore data folder is
  874. put into the underscore data folder is parsed by the framework and converted
  875. parsed by the framework and converted into like an object that then can be put
  876. into like an object that then can be put onto the page you're making right and
  877. onto the page you're making right and there's it it's this the baker system
  878. there's it it's this the baker system uses the node.js programming language
  879. uses the node.js programming language and so the code that does this is not
  880. and so the code that does this is not even in our project it's like deep down
  881. even in our project it's like deep down in the bowels of Baker which is which is
  882. in the bowels of Baker which is which is itself an open source code repository on
  883. itself an open source code repository on the LA Times account right deep down
  884. the LA Times account right deep down within the code of this like toolkit is
  885. within the code of this like toolkit is something that knows to look in the
  886. something that knows to look in the underscore data folder and parse all of
  887. underscore data folder and parse all of the files right and it's smart enough to
  888. the files right and it's smart enough to parse comma separated files Json files a
  889. parse comma separated files Json files a couple other formats and yaml and so
  890. couple other formats and yaml and so basically Baker's set up to try to make
  891. basically Baker's set up to try to make your life easier right but it sort of
  892. your life easier right but it sort of assumes certain things to do that and so
  893. assumes certain things to do that and so it assumes that if you put a file into
  894. it assumes that if you put a file into the data folder you want it to be parsed
  895. the data folder you want it to be parsed and you want it to be available to be on
  896. and you want it to be available to be on the page and then
  897. the page and then the name of the file is then accessible
  898. the name of the file is then accessible when you make the template and so like
  899. when you make the template and so like I'd have to go back in my memory here
  900. I'd have to go back in my memory here but there's a layouts folder that has
  901. but there's a layouts folder that has all of the HTML templates and you can
  902. all of the HTML templates and you can see that there's for instance the book
  903. see that there's for instance the book detail page which is what corresponds to
  904. detail page which is what corresponds to this page on the website about is five
  905. this page on the website about is five and this page about tulips and chimneys
  906. and this page about tulips and chimneys all four of these pages are made with
  907. all four of these pages are made with the same template
  908. the same template and we see here in this template it's
  909. and we see here in this template it's quite complicated for dumb reasons
  910. quite complicated for dumb reasons because I'm not very good at coding you
  911. because I'm not very good at coding you can see that it's using templating tags
  912. can see that it's using templating tags to kind of print out the title of the
  913. to kind of print out the title of the book its description and then that table
  914. book its description and then that table of contents right and so that that data
  915. of contents right and so that that data is coming from the underscore data
  916. is coming from the underscore data folder if we look at the poem detail
  917. folder if we look at the poem detail page
  918. page which which makes the which takes the
  919. which which makes the which takes the yamifi makes the poem you can see that
  920. yamifi makes the poem you can see that here it's using a sort of little bit of
  921. here it's using a sort of little bit of template code to Loop through each line
  922. template code to Loop through each line of the poem and print it line by line
  923. of the poem and print it line by line um it's not just puking the text on the
  924. um it's not just puking the text on the page because there's some complicated
  925. page because there's some complicated styles that have to be done to maintain
  926. styles that have to be done to maintain the Integrity of EE Cummings unusual
  927. the Integrity of EE Cummings unusual typography
  928. typography um but basically the stuff you're doing
  929. um but basically the stuff you're doing is coming out kind of right here right
  930. is coming out kind of right here right and so the poem text which is that
  931. and so the poem text which is that attribute that we see in the yaml file
  932. attribute that we see in the yaml file is being parsed by a custom function
  933. is being parsed by a custom function that I've written and then each line in
  934. that I've written and then each line in it is being printed into the template
  935. it is being printed into the template does that answer your question Sean yeah
  936. does that answer your question Sean yeah thanks yep and there's a whole world
  937. thanks yep and there's a whole world here where these line numbers are used
  938. here where these line numbers are used to manage the custom indentations of EE
  939. to manage the custom indentations of EE Cummings which is quite a lot of fun
  940. Cummings which is quite a lot of fun um if you really are into CSS there's
  941. um if you really are into CSS there's some fun ways to contribute this is part
  942. some fun ways to contribute this is part of why I did this project uh like for
  943. of why I did this project uh like for instance this poem is sideways which is
  944. instance this poem is sideways which is actually how it was intended by EE
  945. actually how it was intended by EE Cummings and so we had to customize the
  946. Cummings and so we had to customize the CSS just for this page
  947. CSS just for this page um my favorite ticket in our issue
  948. um my favorite ticket in our issue tracker currently is about that poem
  949. tracker currently is about that poem which is called life hurl my because
  950. which is called life hurl my because it's actually a question of academic
  951. it's actually a question of academic dispute about whether the poem should be
  952. dispute about whether the poem should be rotated clockwise as it was done in the
  953. rotated clockwise as it was done in the first edition or counterclockwise as it
  954. first edition or counterclockwise as it was done in George fermage's
  955. was done in George fermage's um
  956. um George furman's complete poems
  957. George furman's complete poems um I currently have this ticket being
  958. um I currently have this ticket being reviewed by um George Webster who is
  959. reviewed by um George Webster who is America's leading EE Cummings scholar he
  960. America's leading EE Cummings scholar he believes that counterclockwise is
  961. believes that counterclockwise is correct and that because that is how EE
  962. correct and that because that is how EE Cummings initially intended it in his
  963. Cummings initially intended it in his personal notes
  964. personal notes um from the archives Scholars who've
  965. um from the archives Scholars who've been reviewed he's he's going to scan
  966. been reviewed he's he's going to scan that for me when he can find he actually
  967. that for me when he can find he actually has EE Cummings papers uh and so he will
  968. has EE Cummings papers uh and so he will he will try to scan that for me and we
  969. he will try to scan that for me and we will resolve the tickets so this is a
  970. will resolve the tickets so this is a fun ticket that's not about code it's
  971. fun ticket that's not about code it's about something silly but anyway
  972. about something silly but anyway what do you guys this is this and then
  973. what do you guys this is this and then you get philosophical which is like well
  974. you get philosophical which is like well should our website recreate what the
  975. should our website recreate what the first edition was
  976. first edition was Faithfully or should it recreate what EE
  977. Faithfully or should it recreate what EE Cummings intention was that was later
  978. Cummings intention was that was later restored by Scholars you know 60 70
  979. restored by Scholars you know 60 70 years later right I think the answer
  980. years later right I think the answer there is it has to expose all the bits
  981. there is it has to expose all the bits like if there's a poem with many
  982. like if there's a poem with many different variants the web page can just
  983. different variants the web page can just keep on scrolling
  984. keep on scrolling so you would say I should we should
  985. so you would say I should we should print it uh rotate it both ways I think
  986. print it uh rotate it both ways I think yeah I think the original way first and
  987. yeah I think the original way first and then the other way with copious
  988. then the other way with copious explanations and
  989. explanations and nitpicking about why why about why these
  990. nitpicking about why why about why these things are I I think the library of
  991. things are I I think the library of America tries to go with what the author
  992. America tries to go with what the author intended
  993. intended yeah and that's what the scholars tend
  994. yeah and that's what the scholars tend to like so that so I have right here
  995. to like so that so I have right here with me uh there's a there's a guy named
  996. with me uh there's a there's a guy named George fermage and so George furmers is
  997. George fermage and so George furmers is the guy who put together the what's
  998. the guy who put together the what's called complete poems which was is done
  999. called complete poems which was is done by um live right who still exists as a
  1000. by um live right who still exists as a publisher who published the first
  1001. publisher who published the first edition and um and his sort of
  1002. edition and um and his sort of philosophy in putting the book together
  1003. philosophy in putting the book together was to restore Cummings intent right but
  1004. was to restore Cummings intent right but you could do better than that you can
  1005. you could do better than that you can both have it coming and have all of the
  1006. both have it coming and have all of the nitpicky academic debates afterwards I
  1007. nitpicky academic debates afterwards I think that's right I'm kind of I I think
  1008. think that's right I'm kind of I I think we have to have a philosophy for the
  1009. we have to have a philosophy for the site which I have to deal with when I
  1010. site which I have to deal with when I merge things but I think with I kind of
  1011. merge things but I think with I kind of am leaning towards we go with the intent
  1012. am leaning towards we go with the intent once it's resolved and then maybe we
  1013. once it's resolved and then maybe we have a footnote that could link to this
  1014. have a footnote that could link to this ticket or uh I don't know what but it's
  1015. ticket or uh I don't know what but it's it's an interesting question it's an
  1016. it's an interesting question it's an interesting question so that's that's my
  1017. interesting question so that's that's my life as a maintainer uh thank you for
  1018. life as a maintainer uh thank you for indulging me
  1019. indulging me um and so where we left was we had
  1020. um and so where we left was we had Sean's question about the template and
  1021. Sean's question about the template and we got that handled and so I think we're
  1022. we got that handled and so I think we're maybe ready to start actually editing
  1023. maybe ready to start actually editing the code so everybody click that first
  1024. the code so everybody click that first link in your ticket
  1025. link in your ticket and get up
  1026. and get up your kind of file which you're going to
  1027. your kind of file which you're going to edit which should only have the title
  1028. edit which should only have the title and the first line if it has the text
  1029. and the first line if it has the text already I've made a mistake and we need
  1030. already I've made a mistake and we need to find you another one just speak up
  1031. to find you another one just speak up but
  1032. but to kind of get back to what Ron was
  1033. to kind of get back to what Ron was saying earlier I need to get this in my
  1034. saying earlier I need to get this in my other browser hold on
  1035. other browser hold on um the traditional way of doing get get
  1036. um the traditional way of doing get get until the last few years was to make a
  1037. until the last few years was to make a copy of the repository on your computer
  1038. copy of the repository on your computer and to use your terminal to sort of
  1039. and to use your terminal to sort of interact with the file right but now
  1040. interact with the file right but now GitHub has some really powerful tools
  1041. GitHub has some really powerful tools for making these edits directly in your
  1042. for making these edits directly in your browser and since what we're doing is
  1043. browser and since what we're doing is pretty simple we're going to do that and
  1044. pretty simple we're going to do that and get you guys kind of like on the board
  1045. get you guys kind of like on the board um without having to deal with all the
  1046. um without having to deal with all the terminal crap and that really awesome
  1047. terminal crap and that really awesome tool is kind of buried within github's
  1048. tool is kind of buried within github's interface like you might not even know
  1049. interface like you might not even know it's there right and what it is is it's
  1050. it's there right and what it is is it's this pencil tool right here in the right
  1051. this pencil tool right here in the right hand side the upper right of the file
  1052. hand side the upper right of the file viewer you can hit that down arrow I
  1053. viewer you can hit that down arrow I want everybody to hit that down arrow
  1054. want everybody to hit that down arrow and just look at it
  1055. and just look at it and GitHub actually offers two different
  1056. and GitHub actually offers two different ways
  1057. ways to edit your stuff in your browser if
  1058. to edit your stuff in your browser if you pick the first option edit this file
  1059. you pick the first option edit this file you'll get their kind of like Legacy
  1060. you'll get their kind of like Legacy option that they developed a few years
  1061. option that they developed a few years ago which is very nice right and it's
  1062. ago which is very nice right and it's one way to edit the file in the browser
  1063. one way to edit the file in the browser but below that you can see that there's
  1064. but below that you can see that there's a link that says open in github.dev and
  1065. a link that says open in github.dev and this is like the cool new thing that
  1066. this is like the cool new thing that they are going to gradually replace the
  1067. they are going to gradually replace the older stuff with that has a lot more
  1068. older stuff with that has a lot more cool features and things to take
  1069. cool features and things to take advantage of and so I'm going to ask
  1070. advantage of and so I'm going to ask everybody to hit open in
  1071. everybody to hit open in github.dev in that pull down
  1072. github.dev in that pull down Simon you want to explain what this is
  1073. Simon you want to explain what this is yeah this is um so Microsoft have an a
  1074. yeah this is um so Microsoft have an a text editor so you can install your
  1075. text editor so you can install your computer called vs code Visual Studio
  1076. computer called vs code Visual Studio code and it's one of the best pieces of
  1077. code and it's one of the best pieces of software they've released in years it's
  1078. software they've released in years it's completely open source and this is it it
  1079. completely open source and this is it it turns out it's written in JavaScript and
  1080. turns out it's written in JavaScript and it can run in a browser just as well as
  1081. it can run in a browser just as well as it runs on your computer so when you hit
  1082. it runs on your computer so when you hit github.dev they're actually launching
  1083. github.dev they're actually launching effectively the Leading Edge Microsoft
  1084. effectively the Leading Edge Microsoft like code editing environment purely in
  1085. like code editing environment purely in your browser for you to edit files
  1086. your browser for you to edit files directly on GitHub this is a revelation
  1087. directly on GitHub this is a revelation for me like I never thought I would
  1088. for me like I never thought I would spend most more of my time in a browser
  1089. spend most more of my time in a browser writing code than I would doing it on on
  1090. writing code than I would doing it on on like a proper computer but actually no
  1091. like a proper computer but actually no this is it's such a good editor it's so
  1092. this is it's such a good editor it's so convenient you know it's a a click in
  1093. convenient you know it's a a click in the menu to get there but I actually
  1094. the menu to get there but I actually find myself using this for all kinds of
  1095. find myself using this for all kinds of different projects now
  1096. different projects now so yeah this is effectively I think this
  1097. so yeah this is effectively I think this is best to breed um code editing
  1098. is best to breed um code editing experience and it's freely available and
  1099. experience and it's freely available and you just click a button and you browser
  1100. you just click a button and you browser and off you go yeah and you could do
  1101. and off you go yeah and you could do this on a Chromebook or even on your
  1102. this on a Chromebook or even on your phone
  1103. phone um and it makes these tools a lot more
  1104. um and it makes these tools a lot more accessible to people too you don't need
  1105. accessible to people too you don't need a two thousand dollar MacBook you know
  1106. a two thousand dollar MacBook you know which I think is very important
  1107. which I think is very important personally
  1108. personally um
  1109. um um so what I've done is I've opened up
  1110. um so what I've done is I've opened up my poem you should see yours and then in
  1111. my poem you should see yours and then in uh chapter six about editing the code I
  1112. uh chapter six about editing the code I have a little snippet just to get you
  1113. have a little snippet just to get you started and this is just intended to be
  1114. started and this is just intended to be the like shell of where your text
  1115. the like shell of where your text attribute is going to go you'll notice
  1116. attribute is going to go you'll notice that there's this sort of little
  1117. that there's this sort of little configuration bit here on this attribute
  1118. configuration bit here on this attribute that's because unlike the other
  1119. that's because unlike the other um values in our yaml file this is a
  1120. um values in our yaml file this is a multi-line entry right so the poem is
  1121. multi-line entry right so the poem is going to go over more than one line of
  1122. going to go over more than one line of code and this is just one way of telling
  1123. code and this is just one way of telling yaml that that's what's going to happen
  1124. yaml that that's what's going to happen right and then the negative one tells it
  1125. right and then the negative one tells it um each line will have one white space
  1126. um each line will have one white space at the start of it that isn't part of
  1127. at the start of it that isn't part of the column that's just there to let you
  1128. the column that's just there to let you know that this is one kind of Chunk
  1129. know that this is one kind of Chunk right and so you should just paste
  1130. right and so you should just paste something that's like in here and then
  1131. something that's like in here and then below it we just want to start typing
  1132. below it we just want to start typing the poem right and so I'm going to
  1133. the poem right and so I'm going to um
  1134. um I'm going to get to the poem myself but
  1135. I'm going to get to the poem myself but let me grab the link for my ticket so
  1136. let me grab the link for my ticket so back in my ticket I have this other link
  1137. back in my ticket I have this other link right
  1138. right and I can go to
  1139. and I can go to um
  1140. um that page
  1141. that page and what I'm going to do is just do a
  1142. and what I'm going to do is just do a split screen which you know this is
  1143. split screen which you know this is obviously a matter of taste or whatever
  1144. obviously a matter of taste or whatever different people like to do things
  1145. different people like to do things different ways but I'm going to
  1146. different ways but I'm going to um split my screen and I could see here
  1147. um split my screen and I could see here on the right hand side of this page is
  1148. on the right hand side of this page is the poem that I need to type
  1149. the poem that I need to type and so I'm just going to type it in and
  1150. and so I'm just going to type it in and so this is maybe going to take us all
  1151. so this is maybe going to take us all depending on how long your poem is you
  1152. depending on how long your poem is you know five to ten minutes and so I just
  1153. know five to ten minutes and so I just asked everybody to kind of do their best
  1154. asked everybody to kind of do their best to transcribe what they see on the page
  1155. to transcribe what they see on the page okay so I'm just going to shut up for a
  1156. okay so I'm just going to shut up for a minute and do that
  1157. and you go ahead and do yours too if you have any
  1158. if you have any Adrian what's up
  1159. Adrian what's up um just just want to confirm the we are
  1160. um just just want to confirm the we are retyping the first line like because
  1161. retyping the first line like because there's the first line attribute and
  1162. there's the first line attribute and then but in the text where you want the
  1163. then but in the text where you want the first line to start with the first line
  1164. first line to start with the first line that's correct yeah and the first line
  1165. that's correct yeah and the first line attribute is there so that I could make
  1166. attribute is there so that I could make um
  1167. um I can make this page on the website
  1168. I can make this page on the website which is a common type of index for
  1169. which is a common type of index for poetry if you've ever seen it you know
  1170. poetry if you've ever seen it you know yeah I got you just wanted to make sure
  1171. yeah I got you just wanted to make sure yep okay how do I get back to the book
  1172. yep okay how do I get back to the book oh so in your ticket run there's a link
  1173. oh so in your ticket run there's a link the second link in your ticket
  1174. the second link in your ticket um which poem is yours
  1175. um which poem is yours uh yellow ah
  1176. uh yellow ah so for instance uh nobody wears a yellow
  1177. so for instance uh nobody wears a yellow we can see the link is right here
  1178. we can see the link is right here which I'm gonna try to drop in the chat
  1179. which I'm gonna try to drop in the chat and see how I do okay
  1180. so Ron there's your link all right okay I'll just go back to the issue okay
  1181. okay I'll just go back to the issue okay awesome
  1182. awesome all right
  1183. can you tell that when EE Cummings wrote these uh typewriters were the cool new
  1184. these uh typewriters were the cool new thing
  1185. I don't think we would have these poems if they'd never invented the typewriter
  1186. if they'd never invented the typewriter thank you
  1187. and you know obviously the punctuation is inaccurate to uh according to your
  1188. is inaccurate to uh according to your copy desk or your sixth grade English
  1189. copy desk or your sixth grade English teacher but that is intentional on the
  1190. teacher but that is intentional on the poet's part so we should just try to
  1191. poet's part so we should just try to um mirror as closely as we can what he's
  1192. um mirror as closely as we can what he's up to
  1193. still makes me laugh sometimes these were of course many of these were
  1194. these were of course many of these were intended as a gag EE Cummings was a
  1195. intended as a gag EE Cummings was a goofball especially when he was young
  1196. goofball especially when he was young if you're if you don't like the Poetry
  1197. if you're if you don't like the Poetry you might be interested in his Memoir he
  1198. you might be interested in his Memoir he wrote after coming back home from World
  1199. wrote after coming back home from World War one which recently entered the
  1200. War one which recently entered the public domain and has been republished
  1201. public domain and has been republished by the New York Review of Books
  1202. by the New York Review of Books um it's called the enormous room and
  1203. um it's called the enormous room and it's about being a prisoner of war in
  1204. it's about being a prisoner of war in France but he mostly plays it for Laughs
  1205. France but he mostly plays it for Laughs uh and it's sort of a young man sort of
  1206. uh and it's sort of a young man sort of mockingly um
  1207. mockingly um describing his encounter with the
  1208. describing his encounter with the bureaucracy of War
  1209. I have proofed mine twice and I'm somewhat confident in uh my my work
  1210. somewhat confident in uh my my work ultimately all submissions will be
  1211. ultimately all submissions will be proved against the Furbish by yours
  1212. proved against the Furbish by yours truly
  1213. I'm going to give everybody two or three more minutes if you need more time than
  1214. more minutes if you need more time than that it's totally fine just speak up but
  1215. that it's totally fine just speak up but I'm going to say in two or three minutes
  1216. I'm going to say in two or three minutes we'll we'll uh we'll move on
  1217. we'll we'll uh we'll move on I have a couple quick questions yes
  1218. I have a couple quick questions yes um one I was wondering if we all should
  1219. um one I was wondering if we all should be using that like pipe minus one
  1220. be using that like pipe minus one notation or that's particularly just
  1221. notation or that's particularly just your poem that you were doing everyone
  1222. your poem that you were doing everyone should put that in there
  1223. should put that in there um because that's because the pipe tells
  1224. um because that's because the pipe tells the yaml that this will be a multi-line
  1225. the yaml that this will be a multi-line string right that it's going to go oh I
  1226. string right that it's going to go oh I see more than one line of text so it
  1227. see more than one line of text so it knows how to parse it and then the
  1228. knows how to parse it and then the negative one is a configuration option
  1229. negative one is a configuration option that tells that there will be one white
  1230. that tells that there will be one white space at the start of each row right if
  1231. space at the start of each row right if you don't get this perfectly right
  1232. you don't get this perfectly right that's something we would litigate in
  1233. that's something we would litigate in the pull request which we'll see in a
  1234. the pull request which we'll see in a minute right but that's the that's the
  1235. minute right but that's the that's the intent of how I've configured the yaml
  1236. intent of how I've configured the yaml file I admit it's a little Annoying and
  1237. file I admit it's a little Annoying and in that case we should all we should
  1238. in that case we should all we should also have a white space at the beginning
  1239. also have a white space at the beginning of each yes each I should have a single
  1240. of each yes each I should have a single white space and what you'll find in vs
  1241. white space and what you'll find in vs code is that once you start doing that
  1242. code is that once you start doing that every time you hit enter it will do it
  1243. every time you hit enter it will do it for you automatically it's sort of a
  1244. for you automatically it's sort of a smart enough to figure that out
  1245. smart enough to figure that out my other question was
  1246. my other question was um I don't know maybe now that I added
  1247. um I don't know maybe now that I added this it's not doing anymore but
  1248. this it's not doing anymore but originally there was a colon in the poem
  1249. originally there was a colon in the poem and the colon seemed to be telling the
  1250. and the colon seemed to be telling the code editor that I was
  1251. code editor that I was giving some other like yaml yes
  1252. giving some other like yaml yes configuration yeah so colons are kind of
  1253. configuration yeah so colons are kind of reserved for use in parsing the ammo
  1254. reserved for use in parsing the ammo right we see that after each of our guys
  1255. right we see that after each of our guys I think that if you see I have a colon
  1256. I think that if you see I have a colon in my poem here I think that if it
  1257. in my poem here I think that if it follows the pipe and the negative one
  1258. follows the pipe and the negative one it'll chill out and be okay with that
  1259. it'll chill out and be okay with that once I added the white space in front of
  1260. once I added the white space in front of the line then the the text editor
  1261. the line then the the text editor stopped highlighting it so I think that
  1262. stopped highlighting it so I think that it's probably that's exactly what
  1263. it's probably that's exactly what happened I bet right because because you
  1264. happened I bet right because because you know even though this is sort of like
  1265. know even though this is sort of like Arcane and like who knows what this is
  1266. Arcane and like who knows what this is it's sort of giving instructions right
  1267. it's sort of giving instructions right for like this is how you're supposed to
  1268. for like this is how you're supposed to parse me
  1269. hey Ben um quick typographical question that I'm
  1270. um quick typographical question that I'm running into
  1271. running into um now that I realize I do most of my
  1272. um now that I realize I do most of my writing in Google Docs and it it auto
  1273. writing in Google Docs and it it auto corrects the mdash when I do the two
  1274. corrects the mdash when I do the two regular dashes and there are a couple in
  1275. regular dashes and there are a couple in my poem and I actually don't know how to
  1276. my poem and I actually don't know how to do the empty I don't know if this is I
  1277. do the empty I don't know if this is I can Google it I guess really quick but
  1278. can Google it I guess really quick but I'm like kind of like M dashes are
  1279. I'm like kind of like M dashes are tricky famously you know journalists
  1280. tricky famously you know journalists love them you know what am I one of my
  1281. love them you know what am I one of my favorite things
  1282. favorite things um working at the LA Times is like
  1283. um working at the LA Times is like getting to like deal with all the old
  1284. getting to like deal with all the old newspaper technology and I I once found
  1285. newspaper technology and I I once found the coyote computer system the first
  1286. the coyote computer system the first computers that were run at the LA Times
  1287. computers that were run at the LA Times and they had a special key just for
  1288. and they had a special key just for mdashes so that's how much journalists
  1289. mdashes so that's how much journalists love the mdash that's incredible so
  1290. love the mdash that's incredible so there's different ways to do it on
  1291. there's different ways to do it on different operating systems
  1292. different operating systems um you know the easy lazy way is just to
  1293. um you know the easy lazy way is just to Google it and then copy and paste it
  1294. Google it and then copy and paste it yeah that's what I'm gonna do but since
  1295. yeah that's what I'm gonna do but since you've asked you've allowed me to bring
  1296. you've asked you've allowed me to bring up one of my favorite hobby horses you
  1297. up one of my favorite hobby horses you guys may tell that I like stupid weird
  1298. guys may tell that I like stupid weird uh type type things so I think one of
  1299. uh type type things so I think one of the great failures of Simon and the
  1300. the great failures of Simon and the Silicon Valley crowd is that they have
  1301. Silicon Valley crowd is that they have abandoned the compose key so the compose
  1302. abandoned the compose key so the compose key was once a commonly found uh key on
  1303. key was once a commonly found uh key on where the right ALT key is on your
  1304. where the right ALT key is on your computer or in other common locations on
  1305. computer or in other common locations on a keyboard and it was effectively you
  1306. a keyboard and it was effectively you would you would type that and then you
  1307. would you would type that and then you would you'd hit that key and then you
  1308. would you'd hit that key and then you would enter a pattern and it would give
  1309. would enter a pattern and it would give you uh more Arcane characters more
  1310. you uh more Arcane characters more quickly and it used it uses a pneumatic
  1311. quickly and it used it uses a pneumatic device where you would hit compose key
  1312. device where you would hit compose key then say a tick and an A and you would
  1313. then say a tick and an A and you would get the tick over the A and if you did a
  1314. get the tick over the A and if you did a tick and an e you get the tick over the
  1315. tick and an e you get the tick over the E and if you did compose and three
  1316. E and if you did compose and three hyphens you got an mdash right and so
  1317. hyphens you got an mdash right and so one thing that I've done this is another
  1318. one thing that I've done this is another pandemic Splurge is I bought myself a
  1319. pandemic Splurge is I bought myself a custom keyboard and I put a goddamn
  1320. custom keyboard and I put a goddamn compose key on it and Linux actually
  1321. compose key on it and Linux actually supports a compose key so if you're
  1322. supports a compose key so if you're smart if you're wise enough to use Linux
  1323. smart if you're wise enough to use Linux uh The Gnome operating system will
  1324. uh The Gnome operating system will support a compose key and you hold your
  1325. support a compose key and you hold your keyboard up to the web cameras
  1326. keyboard up to the web cameras everything too tight it's going to be
  1327. everything too tight it's going to be filthy but yeah it's in the right alt
  1328. filthy but yeah it's in the right alt position I've got the custom keycap dude
  1329. position I've got the custom keycap dude because the other thing about the
  1330. because the other thing about the compose key is that it has a beautiful
  1331. compose key is that it has a beautiful Unicode symbol that is actually like
  1332. Unicode symbol that is actually like super heavy metal guys like this is the
  1333. super heavy metal guys like this is the symbol of the compose key like how heavy
  1334. symbol of the compose key like how heavy metal is that
  1335. metal is that the circle and square that could be a
  1336. the circle and square that could be a tattoo right and in fact it's a t-shirt
  1337. tattoo right and in fact it's a t-shirt on my Etsy shop
  1338. on my Etsy shop right so if you really want to get into
  1339. right so if you really want to get into that I like on my Etsy page
  1340. that I like on my Etsy page there's a compose key t-shirt so long
  1341. there's a compose key t-shirt so long live the compose key
  1342. live the compose key Silicon Valley you've let us down yet
  1343. Silicon Valley you've let us down yet again
  1344. again anyway I can't find it now it's there
  1345. anyway I can't find it now it's there in that today yeah that would have been
  1346. in that today yeah that would have been that would have been pretty cool I'm on
  1347. that would have been pretty cool I'm on a I'm on Ubuntu so maybe I'll I'll um
  1348. a I'm on Ubuntu so maybe I'll I'll um I'll have it hack it into having my
  1349. I'll have it hack it into having my right right all key I can probably
  1350. right right all key I can probably that's the way to do it I think it's in
  1351. that's the way to do it I think it's in the gnome settings
  1352. the gnome settings are your keyboard settings maybe
  1353. are your keyboard settings maybe compose key right there see it yeah yeah
  1354. compose key right there see it yeah yeah there you go okay
  1355. there you go okay cool cool
  1356. cool cool I learned something new every day
  1357. I learned something new every day thank you for letting me tell that story
  1358. thing I bought during the pandemic is that tool to remove keycaps like this is
  1359. that tool to remove keycaps like this is the special tool that's just for pulling
  1360. the special tool that's just for pulling out keycaps I'm I should not admit this
  1361. out keycaps I'm I should not admit this but I did buy that
  1362. but I did buy that all right so has everybody gotten their
  1363. all right so has everybody gotten their poem in I know some of them are longer
  1364. poem in I know some of them are longer than others
  1365. than others what's that
  1366. I know you love EE Cummings but he's driving my copy editor heart crazy he
  1367. driving my copy editor heart crazy he would have loved that Ron
  1368. especially when he was young he got kind of grumpy when he got old if you ever
  1369. of grumpy when he got old if you ever read about him he was the kind of
  1370. read about him he was the kind of classic modernist really you know these
  1371. classic modernist really you know these are young bright
  1372. are young bright um people who were kind of damaged by
  1373. um people who were kind of damaged by the war and that's what a lot of their
  1374. the war and that's what a lot of their art is about you know Ezra pound or
  1375. art is about you know Ezra pound or Gertrude Stein or Ernest Hemingway would
  1376. Gertrude Stein or Ernest Hemingway would be other examples
  1377. be other examples and uh Cummings is one who unlike a lot
  1378. and uh Cummings is one who unlike a lot of the more liberal Greenwich Village
  1379. of the more liberal Greenwich Village types
  1380. types um became uh anti-communist where many
  1381. um became uh anti-communist where many of them became pro-communist and so the
  1382. of them became pro-communist and so the 1930s for a lot of these uh literary
  1383. 1930s for a lot of these uh literary characters at the time were really a
  1384. characters at the time were really a conflict between Warren camps and their
  1385. conflict between Warren camps and their position toward the Soviet Union
  1386. position toward the Soviet Union Cummings made a trip to the Soviet Union
  1387. Cummings made a trip to the Soviet Union which he also wrote about and became a
  1388. which he also wrote about and became a pretty uh virulent uh anti-soviet
  1389. pretty uh virulent uh anti-soviet uh anyway
  1390. uh anyway foreign
  1391. foreign so we got it in
  1392. love it all right so now that we have it in we have this in the text editor but
  1393. in we have this in the text editor but like how do we get this back into the
  1394. like how do we get this back into the actual repository right and so this is
  1395. actual repository right and so this is where if you're on your terminal you
  1396. where if you're on your terminal you would have to save the file and type
  1397. would have to save the file and type these insane git commands that like tell
  1398. these insane git commands that like tell it how to do that but because github.dev
  1399. it how to do that but because github.dev is so great we can now do that stuff
  1400. is so great we can now do that stuff just by clicking a couple buttons right
  1401. just by clicking a couple buttons right and you can see here on the left hand
  1402. and you can see here on the left hand side of my text editor we have a little
  1403. side of my text editor we have a little icon that kind of looks like a tree
  1404. icon that kind of looks like a tree right or like a branch coming off with
  1405. right or like a branch coming off with dots and lines and it's got a blue
  1406. dots and lines and it's got a blue circle on it right and that's like a
  1407. circle on it right and that's like a little notification thing and this is
  1408. little notification thing and this is the commit dialogue or the source
  1409. the commit dialogue or the source control dialog which allows you to log
  1410. control dialog which allows you to log your changes that you're making to the
  1411. your changes that you're making to the code and so this is another like techie
  1412. code and so this is another like techie concept of code repositories is that
  1413. concept of code repositories is that every time you make a change into the
  1414. every time you make a change into the Version Control System you have to make
  1415. Version Control System you have to make a log entry you have to say I'm going to
  1416. a log entry you have to say I'm going to change these lines of code right and
  1417. change these lines of code right and that's going to be stored as like a
  1418. that's going to be stored as like a little transaction and then then also
  1419. little transaction and then then also you typically will if you're doing a
  1420. you typically will if you're doing a good job you'll provide a description of
  1421. good job you'll provide a description of what you've done and then that
  1422. what you've done and then that description is stored along with the
  1423. description is stored along with the change and that little bundle of
  1424. change and that little bundle of information or that transaction is
  1425. information or that transaction is called a commit or a code commit right
  1426. called a commit or a code commit right and
  1427. and um and so what you typically do is is
  1428. um and so what you typically do is is you after you make a change you then
  1429. you after you make a change you then write a message and then log it with the
  1430. write a message and then log it with the code commit and the way you can do that
  1431. code commit and the way you can do that in vs code or GitHub Dev is by clicking
  1432. in vs code or GitHub Dev is by clicking that little tree button right so you get
  1433. that little tree button right so you get that thing you can see here it even
  1434. that thing you can see here it even provides a list of the changes you've
  1435. provides a list of the changes you've made and if I clicked on it I get What's
  1436. made and if I clicked on it I get What's called the diff right so it's showing
  1437. called the diff right so it's showing here on the left here's what the file
  1438. here on the left here's what the file looked like before you made the change
  1439. looked like before you made the change here's the diff or the change that you
  1440. here's the diff or the change that you made on the right so you can look at
  1441. made on the right so you can look at that it's often a good idea to do this
  1442. that it's often a good idea to do this before you commit because you might
  1443. before you commit because you might accidentally change more than one file I
  1444. accidentally change more than one file I do that like every day right or you
  1445. do that like every day right or you might have changed something made a typo
  1446. might have changed something made a typo that you didn't intend and this can
  1447. that you didn't intend and this can really highlight that change right so I
  1448. really highlight that change right so I see here no I think I I pretty much got
  1449. see here no I think I I pretty much got what I want I'm feeling good about my
  1450. what I want I'm feeling good about my diff
  1451. diff and so then then the final thing to do
  1452. and so then then the final thing to do is to then go to this text box in the
  1453. is to then go to this text box in the upper left and to write that line to
  1454. upper left and to write that line to describe what you were doing right and
  1455. describe what you were doing right and so I'm gonna and like this is always
  1456. so I'm gonna and like this is always this sort of creative challenge like
  1457. this sort of creative challenge like what did I do you know what I mean and
  1458. what did I do you know what I mean and it's a good thought exercise to see if
  1459. it's a good thought exercise to see if you can really summarize it in this case
  1460. you can really summarize it in this case it's really just gonna I'm gonna say I
  1461. it's really just gonna I'm gonna say I entered the name of this poem so I'm
  1462. entered the name of this poem so I'm just going to copy and paste that so I
  1463. just going to copy and paste that so I entered this guy
  1464. entered this guy and that would be enough I think to have
  1465. and that would be enough I think to have a good code commit message but there's
  1466. a good code commit message but there's an extra piece of sugar that you could
  1467. an extra piece of sugar that you could do on GitHub which is you can link your
  1468. do on GitHub which is you can link your code commit to the issue that you're
  1469. code commit to the issue that you're talking about so that those two things
  1470. talking about so that those two things are joined together on the website and
  1471. are joined together on the website and the way you do that
  1472. the way you do that and I'd encourage you all to do this is
  1473. and I'd encourage you all to do this is you then go back to the issue and I
  1474. you then go back to the issue and I almost always have to go back and look
  1475. almost always have to go back and look because I can't remember but if I go
  1476. because I can't remember but if I go back and look I can see reasoned
  1477. back and look I can see reasoned irrefutable unastonished was ticket
  1478. irrefutable unastonished was ticket number 190. do you see that up there
  1479. number 190. do you see that up there so that's the number of my ticket and so
  1480. so that's the number of my ticket and so then over here in the editor I'm going
  1481. then over here in the editor I'm going to say
  1482. to say fixes hash 190 and you see it's even
  1483. fixes hash 190 and you see it's even Auto completing for me right because
  1484. Auto completing for me right because it's connected to GitHub pretty cool
  1485. it's connected to GitHub pretty cool right and so then I'm going to say fixes
  1486. right and so then I'm going to say fixes number 190 fix is this kind of a magic
  1487. number 190 fix is this kind of a magic word
  1488. word which tells GitHub that if this code
  1489. which tells GitHub that if this code commit is accepted into the repository
  1490. commit is accepted into the repository you can close the ticket automatically a
  1491. you can close the ticket automatically a human doesn't even have to go to close
  1492. human doesn't even have to go to close it it'll do it for you it's kind of nice
  1493. it it'll do it for you it's kind of nice right you don't have to you could just
  1494. right you don't have to you could just put the number and that would still make
  1495. put the number and that would still make the link right but I think this will fix
  1496. the link right but I think this will fix the ticket so I'm just going to put
  1497. the ticket so I'm just going to put fixes
  1498. fixes and then so everybody do that put in
  1499. and then so everybody do that put in your description and try to tag your
  1500. your description and try to tag your issue and then hit this blue button
  1501. issue and then hit this blue button commit and push
  1502. commit and push okay then you're going to get this
  1503. okay then you're going to get this pop-up and we're going to wait for a
  1504. pop-up and we're going to wait for a second and then I'll explain what this
  1505. second and then I'll explain what this pop-up is but I'm going to give
  1506. pop-up is but I'm going to give everybody a chance just to write their
  1507. everybody a chance just to write their message and hit the button
  1508. sorry Ben can you just explain how so I've got my my tech uh the yaml file
  1509. I've got my my tech uh the yaml file there so if I how do I find uh how to
  1510. there so if I how do I find uh how to commit it's a little tricky at first
  1511. commit it's a little tricky at first because it's it's part of the odd
  1512. because it's it's part of the odd interface of the text editor but do you
  1513. interface of the text editor but do you see on the left hand side there's a
  1514. see on the left hand side there's a black bar that's up against the edge of
  1515. black bar that's up against the edge of the window
  1516. the window yeah the fourth icon down does it have
  1517. yeah the fourth icon down does it have like a little blue little blue pop-up
  1518. like a little blue little blue pop-up yeah so that click that icon and that's
  1519. yeah so that click that icon and that's that's the source control Tab and so
  1520. that's the source control Tab and so that's a tab within vs code that
  1521. that's a tab within vs code that actually this is what makes vs code so
  1522. actually this is what makes vs code so popular is that the text editor is
  1523. popular is that the text editor is actually integrated with the version
  1524. actually integrated with the version control system for you and so you can
  1525. control system for you and so you can use it to make changes to code without
  1526. use it to make changes to code without having to go into your terminal or to
  1527. having to go into your terminal or to talk to git and GitHub it will do it on
  1528. talk to git and GitHub it will do it on your behalf right and so by clicking
  1529. your behalf right and so by clicking that you then get a new
  1530. that you then get a new um box should open up from the left and
  1531. um box should open up from the left and then in that upper left text box that's
  1532. then in that upper left text box that's where you type your your commit message
  1533. where you type your your commit message and then hit the blue button
  1534. and then hit the blue button yep and you'll get to this pop-up and
  1535. yep and you'll get to this pop-up and then we'll deal with that in a second
  1536. okay I I didn't get to a pop-up I'm just getting kind of a loading
  1537. getting kind of a loading animation I don't know maybe I need to
  1538. animation I don't know maybe I need to when you hit commit and push yeah
  1539. when you hit commit and push yeah you might try clicking it again that's
  1540. you might try clicking it again that's probably a web connection bug would be
  1541. probably a web connection bug would be my guess you know because all this is
  1542. my guess you know because all this is happening over the internet
  1543. happening over the internet I'm I'm getting a similar thing but what
  1544. I'm I'm getting a similar thing but what happened is a little window popped up
  1545. happened is a little window popped up that I'm supposed to type a name of a
  1546. that I'm supposed to type a name of a branch into that's what's going to come
  1547. branch into that's what's going to come next after this so did you already hit
  1548. next after this so did you already hit the fork repository button no I just
  1549. the fork repository button no I just clicked commit and push and it went
  1550. clicked commit and push and it went right to that
  1551. right to that um well for some reason you didn't get
  1552. um well for some reason you didn't get this pop-up but you're on the next step
  1553. this pop-up but you're on the next step and so if you're on the next step you're
  1554. and so if you're on the next step you're okay right so basically just to return
  1555. okay right so basically just to return to kind of one of our initial principles
  1556. to kind of one of our initial principles we can't commit our code directly to my
  1557. we can't commit our code directly to my repository or you can't because you
  1558. repository or you can't because you don't have authority right I can't let
  1559. don't have authority right I can't let anybody change my code and so how do you
  1560. anybody change my code and so how do you get around that well the way GitHub does
  1561. get around that well the way GitHub does does it is it has you create a copy of
  1562. does it is it has you create a copy of my repository that you own and that
  1563. my repository that you own and that you're allowed to do whatever you want
  1564. you're allowed to do whatever you want with right and that's called a fork
  1565. with right and that's called a fork right so a fork is your personal copy of
  1566. right so a fork is your personal copy of somebody else's code and because it's
  1567. somebody else's code and because it's open source you can do whatever you want
  1568. open source you can do whatever you want within certain limits but you can't
  1569. within certain limits but you can't change the website right because it's my
  1570. change the website right because it's my version of the code that's connected to
  1571. version of the code that's connected to the website through a whole other set of
  1572. the website through a whole other set of technology and so the forks are the the
  1573. technology and so the forks are the the sort of um standard GitHub way of
  1574. sort of um standard GitHub way of managing uh making changes to code and
  1575. managing uh making changes to code and then proposing they'd be accepted back
  1576. then proposing they'd be accepted back in the original repository it's just
  1577. in the original repository it's just like a little cycle right you edit the
  1578. like a little cycle right you edit the code you save it in your fork and then
  1579. code you save it in your fork and then the pull request is asking the owner of
  1580. the pull request is asking the owner of the original to accept the change that
  1581. the original to accept the change that lives in your fork right but because
  1582. lives in your fork right but because this is your first commit you don't have
  1583. this is your first commit you don't have a fork yet right and so an initial step
  1584. a fork yet right and so an initial step that GitHub is going to take here is
  1585. that GitHub is going to take here is it's going to say well you're trying to
  1586. it's going to say well you're trying to make changes I'm reading right from the
  1587. make changes I'm reading right from the box now right you're trying to make
  1588. box now right you're trying to make changes to a project you don't have
  1589. changes to a project you don't have right access to AKA you can't write to
  1590. right access to AKA you can't write to the repository right do you want to
  1591. the repository right do you want to create a fork in this project to commit
  1592. create a fork in this project to commit your proposed changes and my answer is
  1593. your proposed changes and my answer is yes so I'm going to hit the blue button
  1594. yes so I'm going to hit the blue button everybody else should hit the blue
  1595. everybody else should hit the blue button too
  1596. button too and then that's going to go about
  1597. and then that's going to go about creating a fork and and this is where it
  1598. creating a fork and and this is where it starts to get a little Arcane but you
  1599. starts to get a little Arcane but you can see at the very top here there's a
  1600. can see at the very top here there's a pop-up box right and it's basically
  1601. pop-up box right and it's basically asking you to create a branch on your
  1602. asking you to create a branch on your fork So within repositories there could
  1603. fork So within repositories there could be different copies of the code that
  1604. be different copies of the code that sort of break off from each other so
  1605. sort of break off from each other so let's say you own the repository and you
  1606. let's say you own the repository and you want to work on a feature but you you
  1607. want to work on a feature but you you don't want to have that go live as
  1608. don't want to have that go live as you're working on it you want to be able
  1609. you're working on it you want to be able to make commits and then after a certain
  1610. to make commits and then after a certain amount of time send that back into the
  1611. amount of time send that back into the main line of code you do that by what's
  1612. main line of code you do that by what's making called a branch right and a
  1613. making called a branch right and a branch is really like a mini Fork it's
  1614. branch is really like a mini Fork it's like a fork that's within the repository
  1615. like a fork that's within the repository right rather than like a whole separate
  1616. right rather than like a whole separate repository and this is a little
  1617. repository and this is a little confusing but basically you know when
  1618. confusing but basically you know when you have right access to a repository
  1619. you have right access to a repository you traditionally create branches
  1620. you traditionally create branches that that you'll then send back for a
  1621. that that you'll then send back for a merge and so github's default behavior
  1622. merge and so github's default behavior is when you make a commit is to say well
  1623. is when you make a commit is to say well you want to branch that off where you
  1624. you want to branch that off where you want to Branch it and they just see that
  1625. want to Branch it and they just see that as sort of a hygienic and kind of
  1626. as sort of a hygienic and kind of professional default setting so that
  1627. professional default setting so that people aren't just like ramming code
  1628. people aren't just like ramming code into their Master Branch without
  1629. into their Master Branch without thinking about it too much right it's a
  1630. thinking about it too much right it's a little Annoying it might not be
  1631. little Annoying it might not be necessary in this case and um but this
  1632. necessary in this case and um but this is how it's set up and so here's the
  1633. is how it's set up and so here's the thing the the reason it's so useful here
  1634. thing the the reason it's so useful here is that a pull request is actually about
  1635. is that a pull request is actually about um the changes in my Branch here are the
  1636. um the changes in my Branch here are the ones that I'm proposing so it is good
  1637. ones that I'm proposing so it is good practice if you're working on lots of
  1638. practice if you're working on lots of different things that will be pull
  1639. different things that will be pull requests you want each of those things
  1640. requests you want each of those things to be in a different branch so yeah it's
  1641. to be in a different branch so yeah it's a bit of a weird esoteric thing but for
  1642. a bit of a weird esoteric thing but for this particular
  1643. this particular um exercise that we're doing here it's
  1644. um exercise that we're doing here it's actually it's a really useful default
  1645. actually it's a really useful default yeah and so some people will get serious
  1646. yeah and so some people will get serious about their Branch names and they might
  1647. about their Branch names and they might put the ticket number in the branch name
  1648. put the ticket number in the branch name or a descriptive thing but in our case
  1649. or a descriptive thing but in our case we're just going to accept the default
  1650. we're just going to accept the default which is patch one because it's your
  1651. which is patch one because it's your first patch another piece of jargon a
  1652. first patch another piece of jargon a patch is really just like code that you
  1653. patch is really just like code that you want to change right here's the change
  1654. want to change right here's the change that's the patch right and so I'm just
  1655. that's the patch right and so I'm just going to click into that box and as the
  1656. going to click into that box and as the instructions say I'm going to hit enter
  1657. instructions say I'm going to hit enter right and then it's going to say hey
  1658. right and then it's going to say hey you've committed changes to your fork do
  1659. you've committed changes to your fork do you want to switch to your fork and
  1660. you want to switch to your fork and continue making changes say yes I want
  1661. continue making changes say yes I want to switch to my Fork
  1662. to switch to my Fork I can't imagine what would happen if you
  1663. I can't imagine what would happen if you said no to that I think things would get
  1664. said no to that I think things would get very confusing yeah and so now we've
  1665. very confusing yeah and so now we've moved over to the editor has now moved
  1666. moved over to the editor has now moved and you can see that the URL if you look
  1667. and you can see that the URL if you look at it carefully is no longer pale wire
  1668. at it carefully is no longer pale wire me slash cummings.e it's first PR
  1669. me slash cummings.e it's first PR cummings.e because that's the name of my
  1670. cummings.e because that's the name of my user and so you're probably going to see
  1671. user and so you're probably going to see your username in this spot in the URL as
  1672. your username in this spot in the URL as well
  1673. well did that work for everyone
  1674. cool so now back on GitHub you have your own copy of the repository that's been
  1675. own copy of the repository that's been created and to make our pull requests we
  1676. created and to make our pull requests we need to go there and interact with it
  1677. need to go there and interact with it and so this is a little clunky as well
  1678. and so this is a little clunky as well but if you hit the menu box in the the
  1679. but if you hit the menu box in the the menu line the three lines at the LA
  1680. menu line the three lines at the LA times we call this the hamburger if you
  1681. times we call this the hamburger if you hit the uh the hamburger icon in the
  1682. hit the uh the hamburger icon in the upper left you can see that there's a
  1683. upper left you can see that there's a link at the bottom called go to
  1684. link at the bottom called go to repository does everybody see that
  1685. repository does everybody see that oh
  1686. go ahead and hit that guy and then in another tab it's just we're going to be
  1687. another tab it's just we're going to be right back at a repo but we'll see in
  1688. right back at a repo but we'll see in the upper left hand corner it's it's got
  1689. the upper left hand corner it's it's got the Little Fork icon and it's first PR
  1690. the Little Fork icon and it's first PR now right and it says below forked from
  1691. now right and it says below forked from pale wire and so this is a copy of
  1692. pale wire and so this is a copy of repository that you now own and have
  1693. repository that you now own and have right access to that contains the branch
  1694. right access to that contains the branch patch one that has your poem right and
  1695. patch one that has your poem right and so in your repo the poem has been
  1696. so in your repo the poem has been entered but since it's not in the
  1697. entered but since it's not in the original Repository
  1698. original Repository it's uh it's not on the site yet and so
  1699. it's uh it's not on the site yet and so this is kind of the final step of your
  1700. this is kind of the final step of your like secular your journey is to then say
  1701. like secular your journey is to then say I'm gonna propose to the maintainer of
  1702. I'm gonna propose to the maintainer of the original repository to accept my
  1703. the original repository to accept my patch as a pull request how about all
  1704. patch as a pull request how about all that jargon right and you can see that
  1705. that jargon right and you can see that GitHub knows this is what people do and
  1706. GitHub knows this is what people do and so they've even put a little pop-up
  1707. so they've even put a little pop-up yellow box at the top where they're
  1708. yellow box at the top where they're saying hey somebody pushed to this patch
  1709. saying hey somebody pushed to this patch just one minute ago
  1710. just one minute ago would you want to compare and make a
  1711. would you want to compare and make a pull request out of that with this big
  1712. pull request out of that with this big green button
  1713. green button it's like that is in fact exactly what I
  1714. it's like that is in fact exactly what I want to do right and there's other
  1715. want to do right and there's other buttons and other ways to do this in the
  1716. buttons and other ways to do this in the interface but they just know this is
  1717. interface but they just know this is really common so they've put this pop-up
  1718. really common so they've put this pop-up there right and so everybody should go
  1719. there right and so everybody should go ahead and click that green button which
  1720. ahead and click that green button which is compare and pull request
  1721. is compare and pull request and then you get to one final form and
  1722. and then you get to one final form and so this is the pull request form this is
  1723. so this is the pull request form this is where you the outside contributor are
  1724. where you the outside contributor are going to propose your changes to the
  1725. going to propose your changes to the maintainer you can see there's a little
  1726. maintainer you can see there's a little pull down here that says the base
  1727. pull down here that says the base repository pailwire slash EE Cummings
  1728. repository pailwire slash EE Cummings and it's Master branch is being kind of
  1729. and it's Master branch is being kind of asked to accept a patch from the head
  1730. asked to accept a patch from the head repository that's you another terrible
  1731. repository that's you another terrible piece of jargon and that repository is
  1732. piece of jargon and that repository is first PR and it's coming from its patch
  1733. first PR and it's coming from its patch one branch right and if I scroll down
  1734. one branch right and if I scroll down the page you'll see there's the diff
  1735. the page you'll see there's the diff right it's going to say this is the
  1736. right it's going to say this is the change that's being proposed to be
  1737. change that's being proposed to be included and in between there's like a
  1738. included and in between there's like a little text box and another space to
  1739. little text box and another space to write and this box is really the place
  1740. write and this box is really the place where you kind of make your case right
  1741. where you kind of make your case right so this is going to go in as a sort of
  1742. so this is going to go in as a sort of ticket for the maintainer with your code
  1743. ticket for the maintainer with your code as a proposal for inclusion and what you
  1744. as a proposal for inclusion and what you put here is really um can vary but you
  1745. put here is really um can vary but you know if you you know if your work if
  1746. know if you you know if your work if you're if you're making your first ever
  1747. you're if you're making your first ever contribution or if you're doing
  1748. contribution or if you're doing something complicated or whatever you
  1749. something complicated or whatever you know you have to realize you have to
  1750. know you have to realize you have to convince the person who runs the
  1751. convince the person who runs the repository to accept your change right
  1752. repository to accept your change right and so this this form is often a place
  1753. and so this this form is often a place where people try to be persuasive you
  1754. where people try to be persuasive you know they'll say hey there's this bug
  1755. know they'll say hey there's this bug you can see the bug in ticket number
  1756. you can see the bug in ticket number whatever and I researched it and I found
  1757. whatever and I researched it and I found out that this was the problem and then I
  1758. out that this was the problem and then I figured out here's how we're going to
  1759. figured out here's how we're going to fix it I made the change to fix it and
  1760. fix it I made the change to fix it and here it is what do you think right and
  1761. here it is what do you think right and so like that type of rhetoric is really
  1762. so like that type of rhetoric is really common and then you'll see it in a
  1763. common and then you'll see it in a second the maintainer's job is to sort
  1764. second the maintainer's job is to sort of review your proposal and try to
  1765. of review your proposal and try to responsibly decide whether to integrate
  1766. responsibly decide whether to integrate your code whether to ask for you to make
  1767. your code whether to ask for you to make some changes to it or whether to reject
  1768. some changes to it or whether to reject your proposal right and these this sort
  1769. your proposal right and these this sort of interaction that happens is often
  1770. of interaction that happens is often done between total strangers
  1771. done between total strangers um on other sides of the planet one of
  1772. um on other sides of the planet one of my favorite things in life is to wake up
  1773. my favorite things in life is to wake up in the morning and like someone in
  1774. in the morning and like someone in Ukraine or Japan and has sent me a pull
  1775. Ukraine or Japan and has sent me a pull request it's just incredible you know
  1776. request it's just incredible you know um
  1777. um and it honestly blows my mind every time
  1778. and it honestly blows my mind every time it happens but um
  1779. it happens but um but that there's there's tens of
  1780. but that there's there's tens of thousands of these little interactions
  1781. thousands of these little interactions happening all around the world every day
  1782. happening all around the world every day via GitHub and so this will be your kind
  1783. via GitHub and so this will be your kind of first shot at that
  1784. of first shot at that um uh because this is something we're
  1785. um uh because this is something we're doing in a controlled environment
  1786. doing in a controlled environment together and the change we're making is
  1787. together and the change we're making is pretty clear I think that just us saying
  1788. pretty clear I think that just us saying explicitly what we're doing which is
  1789. explicitly what we're doing which is entering a poem and tagging the ticket
  1790. entering a poem and tagging the ticket that those two things are probably uh
  1791. that those two things are probably uh kind of good enough to have a good pull
  1792. kind of good enough to have a good pull request here but I think usually I mean
  1793. request here but I think usually I mean Simon is more of a maintainer than I am
  1794. Simon is more of a maintainer than I am usually you're looking for maybe a
  1795. usually you're looking for maybe a little more than that Simon or what do
  1796. little more than that Simon or what do you look for in in with this message I
  1797. you look for in in with this message I mean the big thing is the worst thing
  1798. mean the big thing is the worst thing that can happen is somebody shows up
  1799. that can happen is somebody shows up with a 100 line pull request for
  1800. with a 100 line pull request for something that you didn't know they were
  1801. something that you didn't know they were going to do and that and now you have to
  1802. going to do and that and now you have to read through the account you don't
  1803. read through the account you don't understand the background so the link to
  1804. understand the background so the link to the issue is crucial for me because I
  1805. the issue is crucial for me because I always want things to be discussed in an
  1806. always want things to be discussed in an issue before they get to the point where
  1807. issue before they get to the point where people are submitting code and then
  1808. people are submitting code and then honestly I used to write really long
  1809. honestly I used to write really long descriptions in these until I realized
  1810. descriptions in these until I realized that a better thing to do with that is
  1811. that a better thing to do with that is to have documentation that's in the
  1812. to have documentation that's in the repository which you update as part of
  1813. repository which you update as part of the pull request so for my projects I
  1814. the pull request so for my projects I tend to encourage people to have a pull
  1815. tend to encourage people to have a pull request which has tests and
  1816. request which has tests and documentation and the implementation and
  1817. documentation and the implementation and then you can have a sentence and I don't
  1818. then you can have a sentence and I don't care but for projects that don't have
  1819. care but for projects that don't have documentation or what but you end up
  1820. documentation or what but you end up wanting wanting a bit more detail than
  1821. wanting wanting a bit more detail than that
  1822. that um something which we can demonstrate
  1823. um something which we can demonstrate actually with one of the pull requests I
  1824. actually with one of the pull requests I just filed is that you can file a pull
  1825. just filed is that you can file a pull request and then add your own comments
  1826. request and then add your own comments to it so you can actually get away with
  1827. to it so you can actually get away with a sort of very short initial thing but
  1828. a sort of very short initial thing but then start a conversation in a thread
  1829. then start a conversation in a thread and Link that into the into the into the
  1830. and Link that into the into the into the code itself if you want to to detail
  1831. code itself if you want to to detail more about how you approach something
  1832. more about how you approach something great tips so once you've kind of got
  1833. great tips so once you've kind of got your initial message together you just
  1834. your initial message together you just hit this green button here which says
  1835. hit this green button here which says create pull request and so I would ask
  1836. create pull request and so I would ask everybody to do that
  1837. everybody to do that and you can see that now we're at the
  1838. and you can see that now we're at the page that looks a lot like an issue but
  1839. page that looks a lot like an issue but unlike an issue it has a file change
  1840. unlike an issue it has a file change attached to it right that's the major
  1841. attached to it right that's the major difference that's what makes it the pull
  1842. difference that's what makes it the pull request
  1843. request and you can actually see here at the top
  1844. and you can actually see here at the top of the repository in the pull request
  1845. of the repository in the pull request tab
  1846. tab or if you click there are all the pull
  1847. or if you click there are all the pull requests that have come in and just in
  1848. requests that have come in and just in the last few minutes everybody's pull
  1849. the last few minutes everybody's pull requests are landing right we can see
  1850. requests are landing right we can see there actually were two ongoing
  1851. there actually were two ongoing discussions with uh two of our heroic
  1852. discussions with uh two of our heroic contributors here at the bottom that I
  1853. contributors here at the bottom that I haven't resolved yet and then here's all
  1854. haven't resolved yet and then here's all the transcriptions that we've been doing
  1855. the transcriptions that we've been doing here in class right and if it's one of
  1856. here in class right and if it's one of my two ones they've got a little bit of
  1857. my two ones they've got a little bit of extra commentary in them which might be
  1858. extra commentary in them which might be interesting to see excellent let me find
  1859. interesting to see excellent let me find one here so here's Simon's first one so
  1860. one here so here's Simon's first one so I'm now looking at this as me or you
  1861. I'm now looking at this as me or you know as the first PR user who is
  1862. know as the first PR user who is effectively Simon's peer right like
  1863. effectively Simon's peer right like another outside contributor and so Simon
  1864. another outside contributor and so Simon has done his little comments oh look at
  1865. has done his little comments oh look at that so you want to explain it
  1866. that so you want to explain it uh yes so um I hit the M Dash issue
  1867. uh yes so um I hit the M Dash issue um so I decided to put a comment around
  1868. um so I decided to put a comment around this and then add a little screenshot of
  1869. this and then add a little screenshot of the original so you can see I am as a
  1870. the original so you can see I am as a wind I've got my mdash there in the in
  1871. wind I've got my mdash there in the in the in the in the um origin it looked
  1872. the in the in the um origin it looked like that just so that we can have a
  1873. like that just so that we can have a conversation about whether or not that's
  1874. conversation about whether or not that's the right typographical approach for
  1875. the right typographical approach for rendering this poem yep and in a long
  1876. rendering this poem yep and in a long pull request where a bunch of code gets
  1877. pull request where a bunch of code gets changed you could have multiple threads
  1878. changed you could have multiple threads like this you can talk about this line
  1879. like this you can talk about this line or that line and they can kind of Branch
  1880. or that line and they can kind of Branch off into like a more targeted
  1881. off into like a more targeted discussions so so to someone like my
  1882. discussions so so to someone like my fake user this is a discussion that
  1883. fake user this is a discussion that they're allowed to join right but they
  1884. they're allowed to join right but they don't really have the authority to do
  1885. don't really have the authority to do anything with the code right but if I
  1886. anything with the code right but if I change browser tabs now and I go back to
  1887. change browser tabs now and I go back to the browser tab where I'm me the
  1888. the browser tab where I'm me the maintainer of it
  1889. maintainer of it and I go to that same pull request
  1890. and I go to that same pull request you'll see a slightly different
  1891. you'll see a slightly different interface you'll see at the bottom that
  1892. interface you'll see at the bottom that there's now a big green button that says
  1893. there's now a big green button that says merge pull request and if I hit that it
  1894. merge pull request and if I hit that it will accept Simon's changes into the
  1895. will accept Simon's changes into the Repository
  1896. Repository right but being part of you know one
  1897. right but being part of you know one when I look at it it's the first thing
  1898. when I look at it it's the first thing I'll do I'll read what they have and
  1899. I'll do I'll read what they have and then I hit this tab right here file
  1900. then I hit this tab right here file changed and this will show me the
  1901. changed and this will show me the changes right and so to me as a you know
  1902. changes right and so to me as a you know responsible maintainer I always want to
  1903. responsible maintainer I always want to just carefully walk through the changes
  1904. just carefully walk through the changes make sure I understand everything that's
  1905. make sure I understand everything that's happening and then I'm allowed to make
  1906. happening and then I'm allowed to make comments that are part of a code review
  1907. comments that are part of a code review that can happen through the GitHub
  1908. that can happen through the GitHub interface where I could say well I could
  1909. interface where I could say well I could ask Simon a question why did we do this
  1910. ask Simon a question why did we do this or I could suggest the change what's
  1911. or I could suggest the change what's like that this is okay but what if we we
  1912. like that this is okay but what if we we could save two lines of code if we wrote
  1913. could save two lines of code if we wrote it this other way right or this looks
  1914. it this other way right or this looks like maybe a bug you know and like and
  1915. like maybe a bug you know and like and that that conversation can happen
  1916. that that conversation can happen through this process so in our case here
  1917. through this process so in our case here today whoa my desk is going down
  1918. um my standing desk just rebelled so uh
  1919. my standing desk just rebelled so uh so in my case here today the review for
  1920. so in my case here today the review for this repository is not really code
  1921. this repository is not really code review right it's a text review and so I
  1922. review right it's a text review and so I have firmages first edition and so I'm
  1923. have firmages first edition and so I'm going to go to the index of this and I'm
  1924. going to go to the index of this and I'm going to look up Simon's poem which is
  1925. going to look up Simon's poem which is supposing I dreamed this right which is
  1926. supposing I dreamed this right which is on page 311.
  1927. on page 311. so I'm going to thumb to that and then
  1928. so I'm going to thumb to that and then I'm gonna just proof his key punching
  1929. I'm gonna just proof his key punching against uh what I find in firmages
  1930. against uh what I find in firmages Edition and that also gets us both the
  1931. Edition and that also gets us both the first edition and firmage which is kind
  1932. first edition and firmage which is kind of what I'm going for right
  1933. of what I'm going for right and so um
  1934. and so um should we have a poetry reading uh
  1935. should we have a poetry reading uh supposing I dreamed this only imagine oh
  1936. supposing I dreamed this only imagine oh I see the first thing so we see here
  1937. I see the first thing so we see here this is actually a sort of there's no
  1938. this is actually a sort of there's no way Simon would have known this but in
  1939. way Simon would have known this but in many of the first editions of Cummings
  1940. many of the first editions of Cummings there are spaces put after the commas
  1941. there are spaces put after the commas and the poems but the scholars have
  1942. and the poems but the scholars have found that in his original intention in
  1943. found that in his original intention in his archives he omits those right and so
  1944. his archives he omits those right and so this is a case where there's probably a
  1945. this is a case where there's probably a discrepancy between the first edition
  1946. discrepancy between the first edition and fermage but our policy as a site is
  1947. and fermage but our policy as a site is to exclude those spaces and so this
  1948. to exclude those spaces and so this would be a case where I could make the
  1949. would be a case where I could make the change myself or I could suggest the
  1950. change myself or I could suggest the changed to Simon I think there even is a
  1951. changed to Simon I think there even is a suggestion option right Simon's that's
  1952. directly I think because you're the owner of the repository that's allowed
  1953. owner of the repository that's allowed to I definitely could but I'm gonna do
  1954. to I definitely could but I'm gonna do like the starter review and so now I've
  1955. like the starter review and so now I've just made a kind of suggestion right
  1956. just made a kind of suggestion right that we're gonna change remove that
  1957. that we're gonna change remove that space only imagine when Dave has
  1958. space only imagine when Dave has thrilled day has thrilled I like that
  1959. thrilled day has thrilled I like that you are a house around which I am a wind
  1960. you are a house around which I am a wind your walls will not reckon how strangely
  1961. your walls will not reckon how strangely my life is curved since the best he can
  1962. my life is curved since the best he can do is to peer and then
  1963. do is to peer and then peer through windows on observe this is
  1964. peer through windows on observe this is another case where we want uh to take
  1965. another case where we want uh to take the space out
  1966. the space out and so then I'm going to add another
  1967. and so then I'm going to add another comment there
  1968. comment there right uh through space unobserved m Dash
  1969. right uh through space unobserved m Dash looks good Simon nice
  1970. looks good Simon nice and then here's another one where we
  1971. and then here's another one where we want to take the space out
  1972. want to take the space out add the review comment
  1973. add the review comment listen for out of all things and then
  1974. listen for out of all things and then there's no space after the parenthesis
  1975. there's no space after the parenthesis this is another change
  1976. this is another change right
  1977. right uh dream is no one's fool
  1978. uh dream is no one's fool I love the curly quote there Simon well
  1979. I love the curly quote there Simon well done
  1980. done semicolon
  1981. semicolon if this wind who I am prowls carefully
  1982. if this wind who I am prowls carefully around this house of you
  1983. around this house of you love being so Simon's got there I'm like
  1984. love being so Simon's got there I'm like thumbs up so I can resolve that and say
  1985. thumbs up so I can resolve that and say good job Simon and then that one closes
  1986. good job Simon and then that one closes right
  1987. right love being such and so here we have
  1988. love being such and so here we have another white space thing
  1989. another white space thing so I'm going to hit the suggestion
  1990. so I'm going to hit the suggestion button and just make that little change
  1991. such or such the normal corners of your heart will never guess how much my
  1992. heart will never guess how much my wonderful jealousy is dark if light
  1993. wonderful jealousy is dark if light should flower oh you have a semicolon
  1994. should flower oh you have a semicolon and in firmage it's a colon
  1995. and in firmage it's a colon huh
  1996. huh uh we could look back at the first
  1997. uh we could look back at the first edition I'm not you know it's pretty
  1998. edition I'm not you know it's pretty hard to read that scan sometimes
  1999. hard to read that scan sometimes or laughing Sparkle from the shut house
  2000. or laughing Sparkle from the shut house around and around which a poor wind will
  2001. around and around which a poor wind will roam okay so that's the poem with these
  2002. roam okay so that's the poem with these minor changes I would be okay with
  2003. minor changes I would be okay with including it so I've made my suggestions
  2004. including it so I've made my suggestions to Simon and then I'm going to hit
  2005. to Simon and then I'm going to hit finish review
  2006. finish review and I can hit a button here called
  2007. and I can hit a button here called request changes and so then this is
  2008. request changes and so then this is going to be a volley that I send back to
  2009. going to be a volley that I send back to him the contributor I'm going to say uh
  2010. him the contributor I'm going to say uh you know and then I can send a message
  2011. you know and then I can send a message that will go back to him so I can say
  2012. that will go back to him so I can say contribution looks great generally
  2013. contribution looks great generally and this is where again being polite is
  2014. and this is where again being polite is always uh you know a good approach
  2015. always uh you know a good approach especially if you're dealing with people
  2016. especially if you're dealing with people you don't know contribution looks great
  2017. you don't know contribution looks great generally thank you for doing this you
  2018. generally thank you for doing this you know I'll play acting a little here
  2019. know I'll play acting a little here there are a few and then explaining why
  2020. there are a few and then explaining why I want to make the changes there are a
  2021. I want to make the changes there are a few small inconsistencies
  2022. few small inconsistencies between the first editions spacing and
  2023. between the first editions spacing and what we see in firmages
  2024. what we see in firmages um
  2025. um complete poems
  2026. complete poems which is our authoritative
  2027. which is our authoritative Source I've made those changes here
  2028. Source I've made those changes here those edits here once they're accepted
  2029. um we can merge this request right so that's my little note back to Simon I
  2030. that's my little note back to Simon I have options here to either just send a
  2031. have options here to either just send a general comment to sort of do a thumbs
  2032. general comment to sort of do a thumbs up and approve it because sometimes
  2033. up and approve it because sometimes multiple people approve things before
  2034. multiple people approve things before they go out and then finally there's one
  2035. they go out and then finally there's one that's called request changes which is
  2036. that's called request changes which is maybe the most common where you're
  2037. maybe the most common where you're saying look here's what I want you to do
  2038. saying look here's what I want you to do right and so I hit submit review and
  2039. right and so I hit submit review and that is a code review if you've ever
  2040. that is a code review if you've ever heard that term we just did it and we
  2041. heard that term we just did it and we could see that back on the pull request
  2042. could see that back on the pull request there my comment appears with this code
  2043. there my comment appears with this code form for Simon because I use the
  2044. form for Simon because I use the suggestion panel
  2045. suggestion panel um he's actually able to accept my
  2046. um he's actually able to accept my suggestions with new commits simply by
  2047. suggestions with new commits simply by um hitting the little pull down in these
  2048. um hitting the little pull down in these conversations this is an incredible
  2049. conversations this is an incredible GitHub feature a great example of just
  2050. GitHub feature a great example of just making things easier through user
  2051. making things easier through user interface so Simon I'm just going to go
  2052. interface so Simon I'm just going to go ahead and accept these just to show how
  2053. ahead and accept these just to show how it works
  2054. it works oh
  2055. I've accepted some of them already this might as a suggestion Collision let's
  2056. might as a suggestion Collision let's see what happens
  2057. um I'll do the last two here don't worry about it I'd suggest doing a merged
  2058. about it I'd suggest doing a merged emerge a squash merger on this one
  2059. emerge a squash merger on this one because otherwise we'll end it with a
  2060. because otherwise we'll end it with a ugly set of times yeah that's fine so
  2061. ugly set of times yeah that's fine so we've done this and the changes are
  2062. we've done this and the changes are there and so now if I go back to files
  2063. there and so now if I go back to files changes
  2064. changes and I look we could see that those white
  2065. and I look we could see that those white spaces are gone right they've been fixed
  2066. spaces are gone right they've been fixed I'm feeling good about the poem
  2067. I'm feeling good about the poem could always be something else goes
  2068. could always be something else goes wrong
  2069. wrong but I see the change requested shows up
  2070. but I see the change requested shows up I'm not feeling good about it
  2071. I'm not feeling good about it and so um
  2072. and so um I think there's a way I can then accept
  2073. I think there's a way I can then accept the changes right so like back here I do
  2074. the changes right so like back here I do in the interface I say yep I'm good with
  2075. in the interface I say yep I'm good with it now approve
  2076. it now approve and now you can see my approval shows up
  2077. and now you can see my approval shows up everything's run through and I have this
  2078. everything's run through and I have this big green button to merge the pull
  2079. big green button to merge the pull request uh Simon was saying I should
  2080. request uh Simon was saying I should squash it which basically means combine
  2081. squash it which basically means combine everything into a single commit so that
  2082. everything into a single commit so that all our little changes don't go into the
  2083. all our little changes don't go into the log which is you know
  2084. log which is you know more of a aesthetic thing but I think
  2085. more of a aesthetic thing but I think the correct decision and so I'm just
  2086. the correct decision and so I'm just going to say let's squash it
  2087. going to say let's squash it they all get put together into one uh
  2088. they all get put together into one uh commit message
  2089. commit message and I hit that button
  2090. and I hit that button and now it says you know pale wire
  2091. and now it says you know pale wire merged this commit into master
  2092. merged this commit into master and if we look at the commit log for the
  2093. and if we look at the commit log for the repository which we see right here we
  2094. repository which we see right here we now see in the the most recent commit
  2095. now see in the the most recent commit message is Simon right and so he's now I
  2096. message is Simon right and so he's now I think for the first time an author on
  2097. think for the first time an author on this repository and the change from his
  2098. this repository and the change from his Fork has been integrated into the main
  2099. Fork has been integrated into the main branch
  2100. branch congratulations Simon thank you for
  2101. congratulations Simon thank you for doing it his ticket was number 181 if I
  2102. doing it his ticket was number 181 if I go back to that ticket
  2103. go back to that ticket oh that's the pull work this ticket it
  2104. oh that's the pull work this ticket it should close automatically but sometimes
  2105. should close automatically but sometimes that takes a minute
  2106. that takes a minute um just because GitHub has like a
  2107. um just because GitHub has like a process that has to play out
  2108. process that has to play out um he maybe didn't say fixes in his
  2109. um he maybe didn't say fixes in his message and so I'm just going to go
  2110. message and so I'm just going to go ahead and close this issue manually
  2111. ahead and close this issue manually because that poem has been entered and
  2112. because that poem has been entered and so I think we're good to go right
  2113. so I think we're good to go right um
  2114. um we have on our page now 14 pull requests
  2115. we have on our page now 14 pull requests which is so exciting for me thank you
  2116. which is so exciting for me thank you guys for putting these in this is
  2117. guys for putting these in this is awesome
  2118. awesome um once class is over I'm gonna go
  2119. um once class is over I'm gonna go through and review all of these and get
  2120. through and review all of these and get everybody's poem in by I hope the end of
  2121. everybody's poem in by I hope the end of the day uh if there's any small stuff I
  2122. the day uh if there's any small stuff I might just clean it up myself or you
  2123. might just clean it up myself or you know send it back for commit comments in
  2124. know send it back for commit comments in case anybody has any issues um one final
  2125. case anybody has any issues um one final thing I want to show you is that because
  2126. thing I want to show you is that because of how this repository is set up when
  2127. of how this repository is set up when you make a code commit it automatically
  2128. you make a code commit it automatically republishes the website and that's via
  2129. republishes the website and that's via another great GitHub feature which is
  2130. another great GitHub feature which is called actions and so actions which is
  2131. called actions and so actions which is another tab at the top is effectively a
  2132. another tab at the top is effectively a cloud computing platform dedicated just
  2133. cloud computing platform dedicated just to your repository this is a truly
  2134. to your repository this is a truly incredible feature of GitHub so
  2135. incredible feature of GitHub so basically you're able to take events
  2136. basically you're able to take events that occur within your repository or
  2137. that occur within your repository or schedule tasks that you set up yourself
  2138. schedule tasks that you set up yourself and you're able to run your code in the
  2139. and you're able to run your code in the cloud for free if your site is open
  2140. cloud for free if your site is open source which is just ah it's like the
  2141. source which is just ah it's like the greatest thing going in open source
  2142. greatest thing going in open source software if you ask me and what I've
  2143. software if you ask me and what I've done if you read the the code repository
  2144. done if you read the the code repository is I've configured this repository with
  2145. is I've configured this repository with an action that uses the baker Frameworks
  2146. an action that uses the baker Frameworks tools to republish the website every
  2147. tools to republish the website every time there's a Code commit and so we can
  2148. time there's a Code commit and so we can see here that two minutes ago when we
  2149. see here that two minutes ago when we merged Simon's code it rebuilt and
  2150. merged Simon's code it rebuilt and republished the website and so Simon's
  2151. republished the website and so Simon's poem was
  2152. poem was um
  2153. um supposing I dreamed this right Simon and
  2154. supposing I dreamed this right Simon and so now this is the big drum roll please
  2155. so now this is the big drum roll please if I go to cummings.ee and I go to the
  2156. if I go to cummings.ee and I go to the is five and I go to supposing I dream
  2157. is five and I go to supposing I dream this look it's now a hyperlink right
  2158. this look it's now a hyperlink right when before it wasn't and if I click in
  2159. when before it wasn't and if I click in there's Simon's work now transcribe and
  2160. there's Simon's work now transcribe and available on the web we hope you know
  2161. available on the web we hope you know forever or at least until the end of you
  2162. forever or at least until the end of you know the internet and I'm available in
  2163. know the internet and I'm available in Google search also available
  2164. Google search also available automatically as a CSV or Json output if
  2165. automatically as a CSV or Json output if anybody wants to create an EE Cummings
  2166. anybody wants to create an EE Cummings bot I will work with you I would love to
  2167. bot I will work with you I would love to see that happen but everything is
  2168. see that happen but everything is machine readable on the site my dream is
  2169. machine readable on the site my dream is to do more with that one of my friends
  2170. to do more with that one of my friends has said we just have to name it deep
  2171. has said we just have to name it deep fakes with two Capital E's and I think
  2172. fakes with two Capital E's and I think uh I think well that's my only request
  2173. uh I think well that's my only request um so we'll get everybody else in but
  2174. um so we'll get everybody else in but that's effectively the whole cycle and
  2175. that's effectively the whole cycle and the end of the Spiel you know if you
  2176. the end of the Spiel you know if you were to if you were to enter more than
  2177. were to if you were to enter more than one poem you know you could just repeat
  2178. one poem you know you could just repeat that over and over again to enter each
  2179. that over and over again to enter each poem sometimes people will submit
  2180. poem sometimes people will submit multiple poems at the same time this is
  2181. multiple poems at the same time this is like a a matter of art with pull
  2182. like a a matter of art with pull requests which is do you just do one
  2183. requests which is do you just do one thing or do you try to do multiple
  2184. thing or do you try to do multiple things to save time
  2185. things to save time um I think Simon and I are probably on
  2186. um I think Simon and I are probably on that one thing at a time kind of train
  2187. that one thing at a time kind of train just because that makes the life of the
  2188. just because that makes the life of the maintainer easier and the code is more
  2189. maintainer easier and the code is more easily kind of managed but honestly
  2190. easily kind of managed but honestly that's all a matter of kind of art you
  2191. that's all a matter of kind of art you know what I mean and approach so I mean
  2192. know what I mean and approach so I mean with that we've really reached the end
  2193. with that we've really reached the end of the tutorial and and what you need to
  2194. of the tutorial and and what you need to see on my screen but I'd like to leave
  2195. see on my screen but I'd like to leave some time now just to um answer your
  2196. some time now just to um answer your questions and just have a uh you know
  2197. questions and just have a uh you know talk about anything you want to talk
  2198. talk about anything you want to talk about related to pull requests or open
  2199. about related to pull requests or open source software or GitHub or modernist
  2200. source software or GitHub or modernist poetry if you want to continue to
  2201. poetry if you want to continue to indulge me
  2202. indulge me so
  2203. so what do you guys want to know
  2204. what do you guys want to know got a quick question I was curious so
  2205. got a quick question I was curious so when I was doing my poem
  2206. when I was doing my poem for this specific
  2207. for this specific against I couldn't read some
  2208. against I couldn't read some because of the the scam yeah so is there
  2209. because of the the scam yeah so is there like I don't know sort of a standardized
  2210. like I don't know sort of a standardized way or something for me to bring that to
  2211. way or something for me to bring that to you in this case your attention that
  2212. you in this case your attention that look I'm trying to submit something I
  2213. look I'm trying to submit something I know isn't done or right but it's most
  2214. know isn't done or right but it's most of the work
  2215. of the work um so this is uh with the example we
  2216. um so this is uh with the example we showed with my pull request this is I
  2217. showed with my pull request this is I like using the comments on lines feature
  2218. like using the comments on lines feature so you can put in the poem submit the
  2219. so you can put in the poem submit the pull request and then you can add your
  2220. pull request and then you can add your own comments to the pull request saying
  2221. own comments to the pull request saying these three lines here I don't think are
  2222. these three lines here I don't think are quite right so I did that by adding in a
  2223. quite right so I did that by adding in a little screenshot you don't even need to
  2224. little screenshot you don't even need to do that and yeah that's um something
  2225. do that and yeah that's um something that I think is really important is it's
  2226. that I think is really important is it's okay to talk to yourself in GitHub
  2227. okay to talk to yourself in GitHub issues and GitHub bull requests I have a
  2228. issues and GitHub bull requests I have a lot of repositories with issue threads
  2229. lot of repositories with issue threads with dozens of comments they're all just
  2230. with dozens of comments they're all just me talking back and forth and recording
  2231. me talking back and forth and recording the decisions I was making and asking
  2232. the decisions I was making and asking myself questions that I resolved later
  2233. myself questions that I resolved later on that these things are free there's no
  2234. on that these things are free there's no size limits on them there's no there's
  2235. size limits on them there's no there's no reason not to add information and
  2236. no reason not to add information and questions like that and I think raising
  2237. questions like that and I think raising it as a discussion item is definitely
  2238. it as a discussion item is definitely the way to go you know because it you
  2239. the way to go you know because it you know who knows who's maintaining the
  2240. know who knows who's maintaining the repo and if you don't know them you can
  2241. repo and if you don't know them you can get differing results but I think most
  2242. get differing results but I think most maintainers want people to be
  2243. maintainers want people to be transparent to like ask their questions
  2244. transparent to like ask their questions and just to like raise problems most
  2245. and just to like raise problems most people that's what most maintainers want
  2246. people that's what most maintainers want obviously there are jerks on the
  2247. obviously there are jerks on the internet you know what I mean and so it
  2248. internet you know what I mean and so it happens every once in a while you will
  2249. happens every once in a while you will have what we call nerd tosterone yeah
  2250. have what we call nerd tosterone yeah before I work that'll come up in these
  2251. before I work that'll come up in these conversations but I think you should err
  2252. conversations but I think you should err on the side of just clear communication
  2253. on the side of just clear communication and so like in the case of this repo I
  2254. and so like in the case of this repo I would want just like what Simon proposed
  2255. would want just like what Simon proposed or even somebody just filing an issue
  2256. or even somebody just filing an issue like honestly I am fine with people
  2257. like honestly I am fine with people filing issues that are just questions
  2258. filing issues that are just questions like what do I do and then we just have
  2259. like what do I do and then we just have the conversation and the issue it can
  2260. the conversation and the issue it can almost be like a helpline because I
  2261. almost be like a helpline because I would rather have that conversation than
  2262. would rather have that conversation than the person not contribute you know
  2263. the person not contribute you know um and I want to know about the problems
  2264. um and I want to know about the problems in this case the particular thingy thing
  2265. in this case the particular thingy thing is we already have a policy which is we
  2266. is we already have a policy which is we go to the firmage right and that's based
  2267. go to the firmage right and that's based on my reporting where basically I
  2268. on my reporting where basically I developed a little Cadre of ee coming
  2269. developed a little Cadre of ee coming Scholars who I interviewed and I got
  2270. Scholars who I interviewed and I got their advice and they were like if it's
  2271. their advice and they were like if it's ever weird just use the firmage and so
  2272. ever weird just use the firmage and so that's kind of our policy and there
  2273. that's kind of our policy and there actually is a file in the repo called
  2274. actually is a file in the repo called the contributing file which you'll see
  2275. the contributing file which you'll see on a lot of repos where I've kind of
  2276. on a lot of repos where I've kind of laid out the rules of the repo I didn't
  2277. laid out the rules of the repo I didn't show that today but in there you can
  2278. show that today but in there you can find the explanation of the yaml the
  2279. find the explanation of the yaml the links to the first position and some
  2280. links to the first position and some answers to kind of an FAQ about issues
  2281. answers to kind of an FAQ about issues like this and in there it just says we
  2282. like this and in there it just says we go to the firmage which has its own
  2283. go to the firmage which has its own problems but it's you know better than
  2284. problems but it's you know better than not knowing we could always go back to
  2285. not knowing we could always go back to the library and just like look at it
  2286. the library and just like look at it [Laughter]
  2287. [Laughter] but they actually have more than one
  2288. but they actually have more than one first edition at Central Library they've
  2289. first edition at Central Library they've been rebound by the library about 50
  2290. been rebound by the library about 50 years ago
  2291. years ago prior to the fire so they survived the
  2292. prior to the fire so they survived the fire
  2293. um which there's a whole book about Susan Orleans wrote called the library
  2294. Susan Orleans wrote called the library book it's about the LA Library fire
  2295. book it's about the LA Library fire excellent book
  2296. excellent book and the history of Los Angeles as well
  2297. and the history of Los Angeles as well um do you mind if I just ask a
  2298. um do you mind if I just ask a clarifying question there so in terms of
  2299. clarifying question there so in terms of like Simon your workflow there where
  2300. like Simon your workflow there where you're saying your commenting so if I'm
  2301. you're saying your commenting so if I'm on
  2302. on where my pull request is in GitHub
  2303. where my pull request is in GitHub I've just got this Branch there's no
  2304. I've just got this Branch there's no conflicts with Brett based branch and
  2305. conflicts with Brett based branch and then I've got the option to leave
  2306. then I've got the option to leave comment below is that where you're
  2307. comment below is that where you're having that conversation or are you
  2308. having that conversation or are you opening up
  2309. opening up the two places I'll have I'll often if
  2310. the two places I'll have I'll often if that's an issue I tend to prefer using
  2311. that's an issue I tend to prefer using the issue for the comments once I've
  2312. the issue for the comments once I've opened a pull request I'll use comments
  2313. opened a pull request I'll use comments on the pull request and I just find that
  2314. on the pull request and I just find that they're both places where people see you
  2315. they're both places where people see you can add comments to individual commits
  2316. can add comments to individual commits but I don't feel like that sounds good a
  2317. but I don't feel like that sounds good a place just because people can miss them
  2318. place just because people can miss them there like this everyone involved in the
  2319. there like this everyone involved in the repository is going to be reading
  2320. repository is going to be reading everything on the issues and everything
  2321. everything on the issues and everything on the pull request that's the safest
  2322. on the pull request that's the safest place to put this stuff
  2323. um Ben I couldn't help but um notice you you mentioned this is actually kind of
  2324. you mentioned this is actually kind of like more of a baker related question
  2325. like more of a baker related question um I was playing around with your um
  2326. um I was playing around with your um first visual story
  2327. first visual story um setup
  2328. um setup um and it was really really well done
  2329. um and it was really really well done and I was actually trying to hack it to
  2330. and I was actually trying to hack it to redesign like my personal site because I
  2331. redesign like my personal site because I know it's mainly made to be just like a
  2332. know it's mainly made to be just like a one-page kind of thing but I I'm
  2333. one-page kind of thing but I I'm assuming in Baker you're able to like
  2334. assuming in Baker you're able to like make a somewhat more not super robust
  2335. make a somewhat more not super robust website but something that has a couple
  2336. website but something that has a couple of you know oh you have different pages
  2337. of you know oh you have different pages um is that something that's appropriate
  2338. um is that something that's appropriate because I never know I've never this is
  2339. because I never know I've never this is I've never actually submitted a pull
  2340. I've never actually submitted a pull request to an open source
  2341. request to an open source um project and I know obviously
  2342. um project and I know obviously different maintainers have their
  2343. different maintainers have their different kind of like General like uh
  2344. different kind of like General like uh what's accepted and what's not uh from
  2345. what's accepted and what's not uh from what you said is like is submitting just
  2346. what you said is like is submitting just kind of an issue even though it's not an
  2347. kind of an issue even though it's not an issue but just like hey is there a Best
  2348. issue but just like hey is there a Best practice of how to make a website
  2349. practice of how to make a website because I want to know from my users
  2350. because I want to know from my users what the problem is and so if they want
  2351. what the problem is and so if they want to email me that's fine if they want to
  2352. to email me that's fine if they want to file an issue that's fine because I I
  2353. file an issue that's fine because I I often think it's better if it's an issue
  2354. often think it's better if it's an issue because then future other people could
  2355. because then future other people could Google it and see a conversation totally
  2356. Google it and see a conversation totally sounds like in this case it may be like
  2357. sounds like in this case it may be like a documentation bug you know what I mean
  2358. a documentation bug you know what I mean there might be a way to strengthen the
  2359. there might be a way to strengthen the documentation so to answer the question
  2360. documentation so to answer the question basically every HTML file you make in
  2361. basically every HTML file you make in the baker project will be served and so
  2362. the baker project will be served and so you could just make a file called
  2363. you could just make a file called foo.html and then there'd be slash Foo
  2364. foo.html and then there'd be slash Foo on your site and so you can add hoc make
  2365. on your site and so you can add hoc make as many pages as you want which may not
  2366. as many pages as you want which may not be documented well enough now that I
  2367. be documented well enough now that I think about it right it was really much
  2368. think about it right it was really much more like I like like connecting them
  2369. more like I like like connecting them kind of before because like my and it's
  2370. kind of before because like my and it's really just my lack of general I'm not
  2371. really just my lack of general I'm not not a web developer kind of thing but it
  2372. not a web developer kind of thing but it was a desire of mine because I was like
  2373. was a desire of mine because I was like oh I really like this framework because
  2374. oh I really like this framework because you know I really was originally using
  2375. you know I really was originally using um looking at some of the other ones and
  2376. um looking at some of the other ones and I was kind of like oh wow this is really
  2377. I was kind of like oh wow this is really cool so
  2378. cool so um yeah the feature I'd point you to
  2379. um yeah the feature I'd point you to that's really powerful is you can
  2380. that's really powerful is you can dynamically generate pages right that
  2381. dynamically generate pages right that was that was kind of my Hope was that
  2382. was that was kind of my Hope was that like for like a Blog that I might have
  2383. like for like a Blog that I might have on my personal site exactly it would
  2384. on my personal site exactly it would dynamically generate so for instance
  2385. dynamically generate so for instance Baker does the LA Times coronavirus
  2386. Baker does the LA Times coronavirus tracker which has a page for each of
  2387. tracker which has a page for each of California's 58 counties but there's
  2388. California's 58 counties but there's only one template right and then there's
  2389. only one template right and then there's there's a little bit of JavaScript
  2390. there's a little bit of JavaScript that's in the configuration file that
  2391. that's in the configuration file that tells it to to generate one for each um
  2392. tells it to to generate one for each um one for each County that I think is
  2393. one for each County that I think is better documented but yeah sure could be
  2394. better documented but yeah sure could be improved so if you really wanted to be
  2395. improved so if you really wanted to be like the a plus plus student that the
  2396. like the a plus plus student that the maintainers love
  2397. maintainers love is if you figured it out you would
  2398. is if you figured it out you would submit the readme edit that like that's
  2399. submit the readme edit that like that's missing like if you if you really want
  2400. missing like if you if you really want to make friends like that stuff like
  2401. to make friends like that stuff like that people love I do yeah all the time
  2402. that people love I do yeah all the time typos anytime you see a typo in any
  2403. typos anytime you see a typo in any documentation you can submit a pull
  2404. documentation you can submit a pull request but also I love adding examples
  2405. request but also I love adding examples because everyone who writes
  2406. because everyone who writes documentation always forgets that people
  2407. documentation always forgets that people just want to see an example of the thing
  2408. just want to see an example of the thing yeah if you find something's missing
  2409. yeah if you find something's missing example you submit an example there's a
  2410. example you submit an example there's a good chance it'll be accepted
  2411. good chance it'll be accepted yeah and you might not hear back from
  2412. yeah and you might not hear back from them for months who knows if they're
  2413. them for months who knows if they're paying attention or whatever but it's
  2414. paying attention or whatever but it's still it's a nice thing to do
  2415. still it's a nice thing to do totally
  2416. I think you just commented on a question that that I had as tied to this because
  2417. that that I had as tied to this because you guys said that you know one pull
  2418. you guys said that you know one pull request at a time is uh you know better
  2419. request at a time is uh you know better handleable or whatever but so if I did
  2420. handleable or whatever but so if I did if I was looking at the doctor reading
  2421. if I was looking at the doctor reading documentation or something and I saw a
  2422. documentation or something and I saw a typo like how small of a thing is worthy
  2423. typo like how small of a thing is worthy of a pulled requester
  2424. totally worth it I I accept pull requests like that all the time I love
  2425. requests like that all the time I love them and I do those too just being a
  2426. them and I do those too just being a news person you get kind of uptight
  2427. news person you get kind of uptight about that stuff you know what I mean
  2428. about that stuff you know what I mean and so like if if honestly we just went
  2429. and so like if if honestly we just went through the class right we just went
  2430. through the class right we just went through that class so that class we just
  2431. through that class so that class we just did is a repo on GitHub right and so did
  2432. did is a repo on GitHub right and so did you guys spot any typos I'm sure they're
  2433. you guys spot any typos I'm sure they're in there did anybody you know if you saw
  2434. in there did anybody you know if you saw one we could do a pull request right now
  2435. one we could do a pull request right now I would you know or if like did I get a
  2436. I would you know or if like did I get a link wrong you know I'm sure I screwed
  2437. link wrong you know I'm sure I screwed something up I think I was I wrote that
  2438. something up I think I was I wrote that with three beers on Wednesday night so
  2439. with three beers on Wednesday night so like I'm sure something is wrong right
  2440. like I'm sure something is wrong right and uh
  2441. and uh um and so that would be a case where
  2442. um and so that would be a case where yeah I've actually had people do that on
  2443. yeah I've actually had people do that on other classes and I really appreciate it
  2444. other classes and I really appreciate it you know I think it's great
  2445. you know I think it's great sometimes it's embarrassing to see all
  2446. sometimes it's embarrassing to see all your typos but you get over that
  2447. thanks yeah I'd misspelled persuasive I saw that
  2448. I'd misspelled persuasive I saw that this morning
  2449. this morning duh
  2450. you could write a bot that just found typos on GitHub couldn't you
  2451. typos on GitHub couldn't you people have done it
  2452. people have done it yeah
  2453. yeah I actually I there are companies that do
  2454. I actually I there are companies that do bots that like run the automatic
  2455. bots that like run the automatic analysis and then spam repos with pull
  2456. analysis and then spam repos with pull requests suggesting fixes and they tend
  2457. requests suggesting fixes and they tend to get bams like people they're they're
  2458. to get bams like people they're they're limits to what people will put out if it
  2459. limits to what people will put out if it was a security flaw that's one thing but
  2460. was a security flaw that's one thing but like yeah
  2461. um then I have to have to bounce in a bit but um I um just wanted to ask you
  2462. bit but um I um just wanted to ask you so you're you're going to be at night
  2463. so you're you're going to be at night car next year yes I will be in Nashville
  2464. car next year yes I will be in Nashville that's what we were talking about
  2465. that's what we were talking about earlier so folks who don't know our data
  2466. earlier so folks who don't know our data journalism World which is kind of where
  2467. journalism World which is kind of where I was nurtured and uh brought into
  2468. I was nurtured and uh brought into adulthood uh uh allegedly
  2469. adulthood uh uh allegedly um is uh has an annual conference which
  2470. um is uh has an annual conference which is called the night car conference and
  2471. is called the night car conference and it's in a different city every year and
  2472. it's in a different city every year and so it's it's where the data journalists
  2473. so it's it's where the data journalists of the world kind of convene classes
  2474. of the world kind of convene classes like this it's what I love about it is
  2475. like this it's what I love about it is it's really a Hands-On event it's a
  2476. it's really a Hands-On event it's a place where people teach each other code
  2477. place where people teach each other code and teach each other data analysis and
  2478. and teach each other data analysis and teach each other how to file public
  2479. teach each other how to file public records requests for valuable government
  2480. records requests for valuable government databases and like all this kind of the
  2481. databases and like all this kind of the place where journalism and Technology
  2482. place where journalism and Technology meets is at this conference and it's
  2483. meets is at this conference and it's really focused on skills building and so
  2484. really focused on skills building and so um I have a little dog and pony show of
  2485. um I have a little dog and pony show of these kind of first classes where I have
  2486. these kind of first classes where I have five or six of them and and so we'll do
  2487. five or six of them and and so we'll do a couple at night car we're going to do
  2488. a couple at night car we're going to do the the one I do the most which is
  2489. the the one I do the most which is called first python notebook which is
  2490. called first python notebook which is really teaching people data analysis
  2491. really teaching people data analysis with the Jupiter notebook which Simon
  2492. with the Jupiter notebook which Simon has helped with in the past
  2493. has helped with in the past and um
  2494. and um and I want to do first visual story but
  2495. and I want to do first visual story but I haven't heard back yet but um um you
  2496. I haven't heard back yet but um um you know we have a few other ones there's
  2497. know we have a few other ones there's one so if you go to my website which is
  2498. one so if you go to my website which is palewire
  2499. palewire um you can find them in the
  2500. um you can find them in the documentation page uh there's ones for
  2501. documentation page uh there's ones for GitHub actions and uh uh Django admin
  2502. GitHub actions and uh uh Django admin panels and a couple other things
  2503. um yeah I'm bummed I'm gonna be in a wedding in India and I'm gonna miss oh
  2504. wedding in India and I'm gonna miss oh wow um yeah wedding in India though yes
  2505. wow um yeah wedding in India though yes you can't miss that you're very excited
  2506. you can't miss that you're very excited it's incredible yeah I'm very excited it
  2507. it's incredible yeah I'm very excited it happens to be like the literal weekend
  2508. happens to be like the literal weekend that it's that it's happening so which
  2509. that it's that it's happening so which city whereabouts in India it's going to
  2510. city whereabouts in India it's going to be in Agra
  2511. be in Agra um which of course has the the Taj Mahal
  2512. um which of course has the the Taj Mahal but some friends and I are going to be
  2513. but some friends and I are going to be hanging around um in Delhi beforehand
  2514. hanging around um in Delhi beforehand and yeah we're making a whole making a
  2515. and yeah we're making a whole making a whole ordeal out of it one of my first
  2516. whole ordeal out of it one of my first friends from college to kind of get
  2517. friends from college to kind of get hitched so
  2518. hitched so um oh that's awesome I've never been to
  2519. um oh that's awesome I've never been to India but I've always wanted to go I'm
  2520. India but I've always wanted to go I'm so tempted to just you know bring my
  2521. so tempted to just you know bring my computer and join virtually but my worst
  2522. computer and join virtually but my worst demons you know I'm gonna lift that up
  2523. demons you know I'm gonna lift that up they're all the other years but if you
  2524. they're all the other years but if you you said you've never been in Nashville
  2525. you said you've never been in Nashville like uh this isn't related to this class
  2526. like uh this isn't related to this class at all but you gotta you gotta try the
  2527. at all but you gotta you gotta try the hot chicken if you're uh if you're a um
  2528. hot chicken if you're uh if you're a um a spicy food it's definitely taken over
  2529. a spicy food it's definitely taken over Los Angeles it's colonized Our Fair yeah
  2530. Los Angeles it's colonized Our Fair yeah yeah I should get the real thing right
  2531. yeah I should get the real thing right no I mean if you get the off authentic
  2532. no I mean if you get the off authentic one I I mean I'm not a spicy food person
  2533. one I I mean I'm not a spicy food person but it really it was it was a different
  2534. but it really it was it was a different dimension that's the hot ones kind of
  2535. dimension that's the hot ones kind of special almost you get that whole
  2536. special almost you get that whole experience yeah I gotta do that you're
  2537. experience yeah I gotta do that you're right I got it that's going on the list
  2538. right I got it that's going on the list um but yeah Simon Ben thank you so much
  2539. um but yeah Simon Ben thank you so much I I always appreciate uh both of you
  2540. I I always appreciate uh both of you guys putting these these things on and
  2541. guys putting these these things on and they're super helpful and uh so yeah
  2542. they're super helpful and uh so yeah thank you for coming
  2543. thank you for coming thank you I'm glad I'm glad it's helpful
  2544. thank you I'm glad I'm glad it's helpful totally all right have a good day guys
  2545. totally all right have a good day guys yep you too
  2546. yep you too um anything else folks want to talk
  2547. um anything else folks want to talk about no pressure or anything but you
  2548. about no pressure or anything but you know my wife's out of town I got nothing
  2549. know my wife's out of town I got nothing to do
  2550. to do did I just confirm what actually
  2551. did I just confirm what actually happened with in terms of so I had a
  2552. happened with in terms of so I had a fork of your repo are the main changes
  2553. fork of your repo are the main changes to that my Fork yes and then what kind
  2554. to that my Fork yes and then what kind of I just get in my head around what
  2555. of I just get in my head around what actually happened when I'm creating that
  2556. actually happened when I'm creating that pool request and what goes what kind of
  2557. pool request and what goes what kind of happens there if that makes sense to
  2558. happens there if that makes sense to then
  2559. then for it then to turn up in the original
  2560. for it then to turn up in the original repo I'm just trying to get my head
  2561. repo I'm just trying to get my head around no I understand that does that
  2562. around no I understand that does that make sense so I don't know if I'm
  2563. make sense so I don't know if I'm explaining myself
  2564. explaining myself thank you
  2565. so if I mean I guess one way to think about
  2566. I mean I guess one way to think about this is nothing changes at all until the
  2567. this is nothing changes at all until the pull request is approved you know you've
  2568. pull request is approved you know you've got your changes in your in your
  2569. got your changes in your in your repository your the pull request is
  2570. repository your the pull request is almost a sort of transient sort of um
  2571. almost a sort of transient sort of um it's you've started that conversation
  2572. it's you've started that conversation you've said said to Ben here are the
  2573. you've said said to Ben here are the changes I would like to make
  2574. changes I would like to make um
  2575. um and nothing will happen then we can have
  2576. and nothing will happen then we can have a conversation around this thing and so
  2577. a conversation around this thing and so forth but until he hits that big green
  2578. forth but until he hits that big green button there are no changes made to your
  2579. button there are no changes made to your repository or to his repository when he
  2580. repository or to his repository when he hits the green button his repository
  2581. hits the green button his repository gets updated again your repository stays
  2582. gets updated again your repository stays alone and you could leave it there for
  2583. alone and you could leave it there for the rest of the time and it'll sit there
  2584. the rest of the time and it'll sit there as a sort of
  2585. as a sort of Frozen version of the thing that you
  2586. Frozen version of the thing that you were working on
  2587. were working on um but so really the um the Magic Moment
  2588. um but so really the um the Magic Moment is the it's the merge it's when those
  2589. is the it's the merge it's when those changes that you've suggested emerged
  2590. changes that you've suggested emerged into into Ben's repository that um and
  2591. into into Ben's repository that um and and added and published the website yeah
  2592. and added and published the website yeah and so I've shared my screen again so I
  2593. and so I've shared my screen again so I think this is one you entered right and
  2594. think this is one you entered right and so we could see that this green
  2595. so we could see that this green highlighted thing that's the patch that
  2596. highlighted thing that's the patch that you're nominating for inclusion and so
  2597. you're nominating for inclusion and so what closes the circle is that is sent
  2598. what closes the circle is that is sent back across to the original right and
  2599. back across to the original right and then I'm asked to merge it into mine and
  2600. then I'm asked to merge it into mine and so basically your changes would be
  2601. so basically your changes would be integrated right and so before so GitHub
  2602. integrated right and so before so GitHub is really the reason it's worth so much
  2603. is really the reason it's worth so much money and it's done so well is it just
  2604. money and it's done so well is it just makes like buttons and forms to make
  2605. makes like buttons and forms to make that easier right right but underneath
  2606. that easier right right but underneath the hood if I put a dot diff at the end
  2607. the hood if I put a dot diff at the end of the URL we see actually the code that
  2608. of the URL we see actually the code that goes to the computer and so this is the
  2609. goes to the computer and so this is the patch or what used to be called the the
  2610. patch or what used to be called the the diff for GitHub and things like GitHub
  2611. diff for GitHub and things like GitHub this this was all done over email you'd
  2612. this this was all done over email you'd have a mailing list and people would be
  2613. have a mailing list and people would be emailing each other literally these
  2614. emailing each other literally these decks would be sent via email and it was
  2615. decks would be sent via email and it was horrible it was such a difficult process
  2616. horrible it was such a difficult process for everyone involved because you have
  2617. for everyone involved because you have to manage your email inbox and apply
  2618. to manage your email inbox and apply these changes one by one and review them
  2619. these changes one by one and review them locally and so forth and GitHub made all
  2620. locally and so forth and GitHub made all of that so much smoother like the amount
  2621. of that so much smoother like the amount of value it added to open source in
  2622. of value it added to open source in general just for making the stuff not be
  2623. general just for making the stuff not be a horrifically like painful email-based
  2624. a horrifically like painful email-based process was enormous
  2625. process was enormous yeah
  2626. yeah the shoe so I think it's just because I
  2627. the shoe so I think it's just because I suppose I'm thinking of just using the
  2628. suppose I'm thinking of just using the command line and when you do that the
  2629. command line and when you do that the process is a little bit different so
  2630. process is a little bit different so from what I've seen here kind of
  2631. from what I've seen here kind of there's a bit of magic going on there so
  2632. there's a bit of magic going on there so I'm just trying to get my head around
  2633. I'm just trying to get my head around how that kind of how would relate to
  2634. how that kind of how would relate to maybe
  2635. maybe if I had my own Fork locally so if the
  2636. if I had my own Fork locally so if the changes landline the way that tends to
  2637. changes landline the way that tends to work is that it's you you do it all on
  2638. work is that it's you you do it all on your own computer you make your
  2639. your own computer you make your strangers but then you push them to
  2640. strangers but then you push them to GitHub and then you go and click the
  2641. GitHub and then you go and click the buttons on the web interface as well so
  2642. buttons on the web interface as well so once you get to the pull request bit
  2643. once you get to the pull request bit that's where you're sort of moving away
  2644. that's where you're sort of moving away from what you're doing the command line
  2645. from what you're doing the command line and moving into the things that you
  2646. and moving into the things that you exclusively go and get about there
  2647. exclusively go and get about there that's right and so I think like support
  2648. that's right and so I think like support and the so the pull request really is a
  2649. and the so the pull request really is a GitHub thing not a git thing you know
  2650. GitHub thing not a git thing you know what I mean when you really like get
  2651. what I mean when you really like get into it it's kind of like a branded
  2652. into it it's kind of like a branded thing that they invented yeah you know
  2653. thing that they invented yeah you know and it's terrible name okay it is I I
  2654. and it's terrible name okay it is I I still don't know why they called it a
  2655. still don't know why they called it a pull request but it's it's a it's been a
  2656. pull request but it's it's a it's been a revelation in in software um just
  2657. revelation in in software um just generally like the amount of
  2658. generally like the amount of productivity it's unlocked if it was
  2659. productivity it's unlocked if it was called a merge request I think I would
  2660. called a merge request I think I would be happier but like it might make sense
  2661. be happier but like it might make sense yeah my like rant on Version Control is
  2662. yeah my like rant on Version Control is it's just the number of mixed metaphors
  2663. it's just the number of mixed metaphors in Version Control is just incredible
  2664. in Version Control is just incredible like is it a tree like is it a mass
  2665. like is it a tree like is it a mass master and a slave is it uh you know
  2666. master and a slave is it uh you know what I mean is it you know what is a
  2667. what I mean is it you know what is a pull and a push like how do those how do
  2668. pull and a push like how do those how do you pull the tree you know it's like
  2669. you pull the tree you know it's like yeah and they they used to call the the
  2670. yeah and they they used to call the the main or Master Branch the trunk do you
  2671. main or Master Branch the trunk do you remember which is why it's called a
  2672. remember which is why it's called a branch right
  2673. branch right but then they stop calling it the trunk
  2674. but then they stop calling it the trunk and see like oh why are we still calling
  2675. and see like oh why are we still calling it a branch and like it's the whole
  2676. it a branch and like it's the whole thing is a mess like they just need to
  2677. thing is a mess like they just need to pick one metaphor and make it work but
  2678. pick one metaphor and make it work but that'll never happen of course because
  2679. that'll never happen of course because it's open source software so we're just
  2680. it's open source software so we're just lucky it's not full of like misogynist
  2681. lucky it's not full of like misogynist jokes or something but well the
  2682. jokes or something but well the misogynist checks have been filtered out
  2683. misogynist checks have been filtered out over time over time yeah exactly it took
  2684. over time over time yeah exactly it took it it only took 30 years so
  2685. it it only took 30 years so um the get the the default branch and
  2686. um the get the the default branch and get was called Master until a couple of
  2687. get was called Master until a couple of years ago and it was a huge like
  2688. years ago and it was a huge like industry-wide effort to switch that
  2689. industry-wide effort to switch that default to be called main instead
  2690. default to be called main instead um which was and it worked to be I think
  2691. um which was and it worked to be I think it's really impressive but it's it's
  2692. it's really impressive but it's it's it's right but if you look at my
  2693. it's right but if you look at my Cummings repo it's still the master
  2694. Cummings repo it's still the master Branch because I made it before that
  2695. Branch because I made it before that whole change happened and like I haven't
  2696. whole change happened and like I haven't spent the 30 minutes it would take to
  2697. spent the 30 minutes it would take to make that change which I probably should
  2698. make that change which I probably should do it's just like one of those things I
  2699. do it's just like one of those things I haven't got to you know
  2700. haven't got to you know is there a way to
  2701. is there a way to update my Fork
  2702. update my Fork to match the master again or do I have
  2703. to match the master again or do I have to great question
  2704. to great question there is that's called fetching Upstream
  2705. there is that's called fetching Upstream so this is another metaphor it's a river
  2706. so this is another metaphor it's a river metaphor right which is that your code
  2707. metaphor right which is that your code is is uh Downstream of the the trunk
  2708. is is uh Downstream of the the trunk right and so when changes are being made
  2709. right and so when changes are being made to what you forked from you might want
  2710. to what you forked from you might want to catch up at some point right and so
  2711. to catch up at some point right and so that's that scene is going to the
  2712. that's that scene is going to the Upstream origin right and so there's a
  2713. Upstream origin right and so there's a so in github's language they call that
  2714. so in github's language they call that fetching upstream and you can do it from
  2715. fetching upstream and you can do it from the command line by by like with a
  2716. the command line by by like with a couple command line tricks but then
  2717. couple command line tricks but then there's also a way to I have to look it
  2718. there's also a way to I have to look it up every single time I do it I've been
  2719. up every single time I do it I've been doing this stuff for like 15 years I
  2720. doing this stuff for like 15 years I can't remember how to fetch from
  2721. can't remember how to fetch from Upstream when I have to go and Google
  2722. Upstream when I have to go and Google for it every single time
  2723. for it every single time it is a pain and so GitHub interface you
  2724. it is a pain and so GitHub interface you can see my screen
  2725. can see my screen they have a little button here for this
  2726. they have a little button here for this which is uh sync Fork
  2727. which is uh sync Fork right and that'll let you do that and
  2728. right and that'll let you do that and then there's this this also this is the
  2729. then there's this this also this is the pull request button that isn't the
  2730. pull request button that isn't the pop-up and so they kind of hide that
  2731. pop-up and so they kind of hide that stuff in here
  2732. and so like a cycle would be let's say I want to contribute like something later
  2733. want to contribute like something later is I would go back to my main branch I
  2734. is I would go back to my main branch I would fetch Upstream to make sure I've
  2735. would fetch Upstream to make sure I've caught up I would then make a new Branch
  2736. caught up I would then make a new Branch where my new SEC pull request number two
  2737. where my new SEC pull request number two is going to go and then I would submit
  2738. is going to go and then I would submit that right the only time you have an
  2739. that right the only time you have an issue there is like well if your changes
  2740. issue there is like well if your changes conflict with something that's Upstream
  2741. conflict with something that's Upstream let's say in the in the in between
  2742. let's say in the in the in between period right you've edited a file that
  2743. period right you've edited a file that changed Upstream right and then when you
  2744. changed Upstream right and then when you fetch you get the most infamous hell of
  2745. fetch you get the most infamous hell of git which is a merge conflict which is
  2746. git which is a merge conflict which is well you change something that somebody
  2747. well you change something that somebody else changed and which one do we keep
  2748. else changed and which one do we keep right and there's like a whole process
  2749. right and there's like a whole process for dealing with that and slaying your
  2750. for dealing with that and slaying your first like conflict message is like part
  2751. first like conflict message is like part of your um your rite of passage is like
  2752. of your um your rite of passage is like a as a computer programmer
  2753. it's a river metaphor and then why is it called origin
  2754. called origin that's just like CIS admin talk right
  2755. anyway other questions
  2756. all right well thanks again everybody I really appreciate your contributions
  2757. really appreciate your contributions um I'm gonna go get something to eat my
  2758. um I'm gonna go get something to eat my wife's out of town so I'm thinking Ramen
  2759. wife's out of town so I'm thinking Ramen and uh and um and then I'm gonna take
  2760. and uh and um and then I'm gonna take our video and try to post it on YouTube
  2761. our video and try to post it on YouTube get all your pull requests in and I'll
  2762. get all your pull requests in and I'll probably send an email to kind of
  2763. probably send an email to kind of everybody who expressed interest so
  2764. everybody who expressed interest so people who couldn't make it today can
  2765. people who couldn't make it today can um you know maybe contribute a poem or
  2766. um you know maybe contribute a poem or watch it at their Leisure we'll see but
  2767. watch it at their Leisure we'll see but um I really appreciate you guys showing
  2768. um I really appreciate you guys showing up I really really personally appreciate
  2769. up I really really personally appreciate you helping with my little pet project I
  2770. you helping with my little pet project I hope it also helped you at the same time
  2771. hope it also helped you at the same time um my hope is is that by the end of the
  2772. um my hope is is that by the end of the month we'll have the whole book in
  2773. month we'll have the whole book in um so that's it Simon any parting words
  2774. um yeah that I mean the main thing is this stuff is really really convoluted
  2775. this stuff is really really convoluted but the um the stuff that we've shown
  2776. but the um the stuff that we've shown you on GitHub specifically the um that
  2777. you on GitHub specifically the um that that github.dev thing is such a huge
  2778. that github.dev thing is such a huge leap forward in making this stuff
  2779. leap forward in making this stuff actually Pleasant to use so I I'm really
  2780. actually Pleasant to use so I I'm really excited about it I think it it does make
  2781. excited about it I think it it does make this stuff a heck of a lot less painful
  2782. this stuff a heck of a lot less painful for people to get involved with mm-hmm
  2783. for people to get involved with mm-hmm all right so I'll see you guys on GitHub
  2784. all right so I'll see you guys on GitHub thank you Ben thank you Simon that was
  2785. thank you Ben thank you Simon that was awesome have a great weekend very much

Downloads

Recording video · Timestamped transcript