At first glance you might think our podcast topic is from way out in left field; however, as you think about it there are a number of reasons we should be talking about GitHub. Even if you don’t need a public source control repository for creating code, GitHub is becoming the preferred place for creators to publish their content and the ability to interact with other is extremely value. In this episode we give some of our thoughts around getting started with GitHub and how it might differ from some of the other options out there.
Don’t forget to leave your ‘Tips and Tricks’ on the podcast page. If we get enough submissions, we will start that new segment in January.
“Although it’s not directly a SQL Server thing, it’s one of those things that is really important to be able to understand.”
“That’s an interesting way to use GitHub because you’re almost using it as a distribution mechanism.”
“It’s probably the most popular repository now.”
“When people see public repo on GitHub it’s really just assumed that it’s there for community distribution.”
“As long as you’re using source control to keep track of what you’re doing and you’ve got the appropriate ways to distribute it, GitHub is great for that, but it’s not the only tool out there.”
Listen to Learn
00:12 Introduction about the episode topic (GitHub)
02:34 Companero shoutouts
03:53 What’s coming up: Tip and Tricks and Database Health Monitor Webcast
06:53 SQL Server in the News
09:55 Show notes links
10:42 GitHub as a repository for DBAs and IT professionals and other usage of GitHub
16:40 Private or public repository – pros and cons
24:41 GitHub licenses
26:38 The “Read Me” file
28:30 GitHub interaction (Browser, Desktop App, Bash Shell commands)
31:45 RedGate SQL Source Control, Visual Studio
35:15 Defining differing terminologies
35:55 Thoughts about using GitHub if you’re the only one working on a project?
Transcription: Should I get involved with GitHub?
*Untranscribed introductory portion*
Carlos: Companeros, welcome aboard the SQL Trail, this is Episode 119.
Steve: Yes 119, and today’s topic is getting started with GitHub. That’s quite a few things lined up to cover here today.
Carlos: That’s right, and so obviously GitHub being a source control product and there is a lot of flavors here, and when you think about GitHub you can probably put yourself in one of a couple of buckets here. One, you’ve never heard of GitHub.
Steve: Right, and at this point you are wondering what the heck we are talking about.
Carlos: So we hope to provide a little bit of information there and maybe some at the end of the program, if you haven’t got started, now you’ll have at least some direction to go further. Maybe the other bucket is you’ve heard about GitHub but you’re scared.
Steve: Maybe scared is not the right word but you might just not know where to go.
Carlos: Sure, yeah, intimidated is the word I would have used in describing myself, and I still kind of feel that way to a certain extent. So you’ve said source control, but you don’t know Git per say, and those folks who should be doing this episode with us.
Steve: Right, the real pros who want to share the information.
Carlos: Yeah, exactly, who are using it. I’m not sure how valuable this episode will be. I mean obviously we are going to share some opinions or thoughts on some things. But we are not going to be uncovering particularly an audio format, anything deep dark GitHub secrets. And then the last group, so those who have jumped to Kool-Aid and basically it’s GitHub or bust.
Steve: Right, yeah, and those are the ones if you’re using anything else you are unworthy basically.
Carlos: Our conversation is kind of, with an emphasis on GitHub but we admittedly are going to break away a little bit from that. We will be referencing things like TFS as well. And so if GitHub is your thing and you’re hearing other repositories is going to make your ears bleed. This episode is not for you either.
Steve: But before we really get into the details there, do we have any companero shoutouts this week?
Carlos: We do have a shoutout. I want to give a shoutout to Nikki V from the Netherlands. Nikki V left a comment on the website talking about Episode 115. He mentioned, “I love your fun and honest review of the SQL Trail.” And so we appreciate that and I hope to see you Nikki on the SQL Trail someday.
Steve: Nice, and then we have another one from Andy Levy. He liked Episode 117 which is our wrap up of Summit.
Carlos: That’s right and enjoyed kind of hearing some of the comments there and we enjoyed meeting him at Summit obviously. Another fellow that I met, I’m not sure if you’re connected with him Steve, but Justin. Justin who I believe is in Alabama now. We were talking and he mentioned a script that he had to help find potential foreign keys and he shared that with me. I haven’t been able to go through it just yet but I’m grateful to him for sharing it with me and may actually come in handy on a project that we are working on, so interesting idea. We mentioned it last week, we will mention it again, so now through the end of the year we want to start collecting your tips and tricks. We’re going to start adding tips and tricks section, very similar to SQL Server in the News. However, we want this section to come predominantly from you the listener.
Steve: And that could be really in two flavors there. I mean, one could be, here’s your tip or trick and how exactly how to do it or the other could be you saw somebody do this and it was really awesome but you didn’t quite figure out how to do it, and maybe we can help with those too.
Carlos: Yeah, there you go, any of those combinations. You can go to sqldatapartners.com/podcast. On that page you can either leave in the comment for submission of ideas or tips and tricks or you can use the online recording and record a segment of what’s your tip or trick is.
Steve: Yup. Then coming up on December 14th we have a special event plan.
Carlos: That’s right, and I should say probably a recurring event. Something else we’re trying or adding into the mix here.
Steve: Yup, and this is the Database Health Monitor Webcast. And when we say it’s recurring, we’ll probably do it every month or maybe every couple of months but it’s not going to be the same every time. We will cover different topics or different parts of the program.
Carlos: That’s right, so we’ve tested out our video equipment and it hasn’t broken just yet and so we’re thinking we will add a little video to the mix here. So there are going to be short 30-minutes segments, you know, very similar to the podcast but it’s going to be focused on Database Health Monitor and kind of monitoring those interactions with your system.
Steve: Yup, and with that it will be a live broadcast.
Carlos: That’s right. We will record it and make it available through YouTube or whatnot afterwards.
Steve: But people can attend live through the go to meeting connection, correct?
Carlos: Correct. So at sqldatapartners.com/webcast, you can go there and sign up for the next episode, and we’re going to those the second Thursday of every month is the plan.
Steve: So then if somebody has questions, we’ll do our part of it and then at the end we will open it up to Q&A. That’s going to be fun.
Carlos: That’s right, so we’re hoping everyone finds that valuable and just another way to connect with you all, something in a live setting and again not hours and hours. But very similar, you’ve seen other folks out there in the community doing something similar and we’re looking to put our spin on it. And with that, I think it’s time for a little SQL Server in the News. And it’s in this segment only because one, we were just talking about it with a client and then I happen to be looking at the Microsoft blog and there was actually an article about this last month. That’s why I said, “Oh well, if they are talking about it, we should be talking about it.” Ultimately, it’s this idea of securing your Azure VMs or Azure SQL Database and restricting it by IP Address. And so you and I are talking, and ultimately what we had is we had a scenario where a client wants to give us access to their VMs and we got a username and password. And I’m like, “Well, I haven’t given you my IP Address, how am I going to connect to this thing?” I’m like, well let me just try really quick and I could connect. And I was like, yeessh. So we talked a little bit about this and I’m not sure. I guess I was thinking maybe with Azure SQL Database but it sounds like they even changed that. Maybe, I don’t if it’s process now, right, we’re I’m locking that down automatically so that it’s just something that I do. I’m adding those IP Addresses, but basically the idea is that you can by default those are exposed on the internet. So if you know the IP Address you can basically start to try to get in there, and not a good idea.
Steve: Yup. But I think part of what they do is they have to do it that way so that you can get connected there to begin with before you’ve actually done anything to lock it down. So I think that just a lot of time people overlooked that and I think that’s Azure databases and with Azure VMs.
Carlos: Right, well I guess I feel like I can do that in the dashboard. I don’t actually need to connect in order to make those firewall rules enabled so I guess that’s a puzzling thing.
Steve: But I would bet that if they made it so that you had to set that up before you could actually connect so limit where you can connect from that a lot of people would not get pass that because it’s not entirely intuitive how to do it.
Carlos: You know I agree and there are a million ways to go ahead and do that, right, so like if you have a point-to-point VPN then that’s different than me being from my home and I just want to give my IP Address because I’m going to ask who’s going to be connecting to it. There are some complexities in there and I kind of see that but I think if that’s something that you’re working with, you are doing something in Azure, that’s a conversation you want to start having. Don’t start spinning up those databases and just leave them there, right? You need to make sure you’re talking to your network folks and making sure they get locked down.
Steve: Yup, absolutely. Alright.
Carlos: So our show notes for today’s episode is going to be at sqldatapartners.com/github.
Steve: Or at sqldatapartners.com/119 for our episode number.
Carlos: Ok, and so as we are putting this together and obviously we are recording just before Thanksgiving, so happy Thanksgiving. And hopefully everyone had a happy thanksgiving because this will come out after thanksgiving. And we were thinking about what we will be talking about and so this idea of GitHub at least in my mind. You think about the changing nature of the DBA position and I feel like I am hearing just a lot more about GitHub. Yup and so I thought we talk a little bit about why that is and then kind of get into it there.
Steve: Well, what’s interesting here Carlos is when you first brought up the topic of GitHub I kind of thought to myself, “Well we’re doing the SQL podcast. Why are we talking about GitHub?” And then after looking a little bit and thinking about it a bit more I realized how much we actually use it as DBAs. Although it’s not directly a SQL Server thing, it’s one of those things that’s really important to be able to understand what it is and how that works.
Carlos: That’s right. And I’m reminded, I’m not sure if the code is attributed to him but I heard it first from Andy Leonard and this quote that he had he’s like, “There are really two types of DBAs or IT professionals. There are those who are using source control and there are those who will be using source control after some disaster.” And again ultimately that’s what we are talking about is a source control technology but it almost seems like in a sense that that is almost like a defacto way that people are starting to push, and when I say people, particularly Microsoft, right. The documentation is now on GitHub or you can see it on the website but as far as being able to interact with it having people contribute to it like that’s now an option. That’s how the people who are writing documentation for Microsoft are actually contributing or pushing to this GitHub repository.
Steve: Right, and I think that’s an interesting way to use GitHub because you’re almost using it as a distribution mechanism. And some extent with the ability to get feedback and I guess if you’re accepting code changes from the community then that’s different because you’re actually taking changes in.
Carlos: Right, and I think we can get into that and maybe pros and cons or good and bad of what that means. But yeah, I think you’re right. We are kind of using at as a way just to distribute that information. It seems like anymore the code samples. If you want a code sample so they have come up with so there was worldwide importers or wide world importers. Whatever it was it was kind of available to the next version of Adventure Works, another sample database. But they’ve kind of actually come with another one since that and basically they’re like, “Oh, go and get it in GitHub.” I haven’t seen links for like, “Hey, download it here.” It’s like go to GitHub. There are all the samples, people are changing and they are kind of massaging it there. I think about Cosmos DB samples and things like that for example. It’s all there and you’re like, “Oh, gosh! I don’t know how to interact with that.”
Steve: And you know what’s interesting is it might be maybe a little bit more trusted there because you can go and see the history and go and get more information on it and it’s not just. I mean of course coming from Microsoft is different but if it’s coming from some third party tool vendor out there that you may have never heard of, do you trust what’s on GitHub more what’s on their website? I don’t know, maybe.
Carlos: Yeah, that’s interesting. And I think again kind of the influence of the open source community in that we should have visibility into how the soup is being made if you will. Yeah, I think definitely contributes to that, so that is interesting. So a couple of other reasons quickly, so if you’ve been using CodePlex for example. I know CodePlex, you could put together a tool, throw it up there, kind of share it with the community. As of December 1, that’s going to be read-only. So if you want to be doing things, like for example Pal Tools, one of the tools that I have used in the past. The creators or maintainers of those applications won’t be able to use CodePlex anymore and they are moving everything to GitHub. And the last one is, you see a lot of employers starting to ask for that in the interview process.
Steve: Yeah, this is one I saw a couple of years ago where they actually said, “I don’t care about your resume just give us your GitHub username and we will look at what you’ve done.” Which I thought maybe that was a little bit, you miss a lot of stuff because there are a lot of people who have done amazing things in their career that didn’t necessarily happen on GitHub publicly.
Carlos: Yeah, exactly. That stuff is probably an emphasis of maybe focusing too much on almost like a particular technology stack potentially is that a lot of people would go to the wayside. But I think you have to agree that it’s probably the most popular repository now, right?
Steve: Oh yeah, absolutely.
Carlos: And so because of that, it’s almost like if you’re not on Facebook, right? It’s like, “Come on!” Everybody is there. Even if you’re not posting there all the time just that ability to log in and kind of connect with the rest of the world. I kind of feel like that’s what GitHub has become in a sense.
Steve: I think that, I mean, there is a lot of different uses there for what you can do on GitHub. I mean one, is something big like Microsoft distributing sample databases. Another option is you’ve got something like Brent Ozar does with his sp_blitz and other scripts that he does where he distributes those but he also get a lot of feedback and changes from people. And I think that’s a great way to use it, to be able to take those changes back and be able to integrate them in your base code there.
Carlos: Yeah, I mean, DBA Tools is another example of that.
Steve: Yup. But then there is like let’s say you’re a company and you’ve got your private intellectual property that you want to keep private for whatever reason, you’re making a product. There are GitHub options that you can pay for that will give you private repos, private on-site repos with GitHub. That’s very different than sort of the free open source collaboration method there too.
Carlos: Yeah, exactly. And I guess that’s an interesting question. Let’s go ahead and dive into that for a bit. Ultimately, with GitHub you can have a repository, that’s kind of your folder, your project, that’s kind of where all the files are going to go for that for that project. And you can have private versus public. I think it makes a lot of sense. I am a private company, I’m selling a piece of software. I want to keep that private it’s the IP that I have. Now the question is the way we kind of frame it or talk about it is that it’s the open source. You want people to see what you’ve done. Even if maybe you’re not having people collaborate with you, you know that book of work may still be important to you. And so why would you then like does everything have to be public or do you still have things that are private versus public? Admittedly, everything that I have out there is public which is not very much. Let’s just say I have two repositories, so please don’t think that I am slaying all these code or anything. The two repositories are for the Zero to SQL book. I put up the scripts to create database and made it from a distribution perspective. Very similar to what we’ve talked about. And then the other one was our database setup and we are hoping people would contribute to that and maybe get that started.
Carlos: But there are other uses too for private repos. I mean, I have quite a few more than you do there. But some of the examples of what I do is I have one that’s called presentations and it’s private but it has every presentation that I have done at a conference, at a SQL Saturday, PASS Summit, whatever for the last 7 or 8 years I’ve got in there. So if I remember that, “Oh that was in a presentation I did 5 years ago I want to go find that code.” It’s all there on that private repo. Now, some people might argue that it would be better to put that out on a public repo but there is a lot of stuff that I’m working on there that may not be ready for public consumption yet.
Carlos: Right, and that’s kind of another interesting idea. It’s almost like the policy of your repository and the purpose because I think you almost like have little islands or little reasons/different reasons why people are putting out those repositories and they are not all the same. Like you mentioned, “Everything might not be ready for primetime”, and so that’s an interesting take. And so how you decide to set that up, I think you need to be clear about that if you’re going to make a public repository. You need to be clear like, “Hey, this is just for me”, “This is part of my body of work” or however you want to say that maybe a bit more eloquently. But make that known upfront. And another vain could be even as simple as like, “Hey, here is how we do certain or here is our policy on like case or formatting”, things like that, coding standards, there you go.
Steve: But I think when people see public repo on GitHub it’s really just assumed that it’s there for community distribution and that you’re hoping that people will fork it and then use it on, and then contribute and push back into what you’ve done. I think that’s kind of the assumption but that’s not always the case there with public repos.
Carlos: Sure, yeah. Maybe that’s a philosophical question at this point. But why would you put out a public repo if you didn’t want anybody to contribute to it?
Steve: That’s a great question.
Carlos: But we do know that there are people that are doing that.
Steve: If you have a public repo and you didn’t want anyone to contribute or add to it in any way. Would you be bothered if they did? Would you, like if somebody came along and came up with some super cool enhancement for whatever it was you had there and they did a pull request so that you could review it and maybe integrate back into your code base. I mean there are some out there I’ve seen where they’re just going to say, “No. I don’t want it. I don’t want anything, anybody contributes because that’s not mine.” That’s not my mentality but there are some of that out there.
Carlos: Well, and in their defense we’ve talked about this on other episodes like go back to community contribution episode that we did. We interviewed Bren and Crisy. It takes a lot of time. I mean, it’s one thing to write the code, so anybody who’s done that branching and merging all the stuff back in and then casting. You are now taking responsibility for all of that as the owner of that repository. There are pluses and minuses there as well too.
Steve: And some of that may depend on how complex it is. I mean there’s a lot of code out there on that DBA Tools project. It’s many orders of magnitude different from our setup scripts that we put in our public repo. I mean one single page and the other is gigantic.
Carlos: Right, lots and lots of functions and some of those. Ok, so I guess ultimately dealing with that if you do go private. You have that ability to say, “Yes, I want to share with the world” or “No, I don’t”. Like you’ve talked about, most of the people are thinking or the expectation is you go public because you want to share it, you want people to contribute to it but then there potentially some consequences with that. Having said that, I guess I would say, typically if you’re new. And I still consider myself to be new to that community. You know, we’ve put those things out there. We have like a couple of watchers but we haven’t actually had anybody contribute and so I don’t think you should be so afraid. Like I would let that stop you I guess is what I’m saying because it’s going to take a lot of time and branding and all of those things until it gets noticed or picked up. Almost like your blog in that sense.
Steve: Right. But the other thing to be aware of too is if you’re looking at someone’s repo there, public repo on GitHub, look like how often it’s been maintained. When was it updated? When was it was last changed? And I know for instance I had some project that probably are 6 years ago that was like a weekend thing that I thought, “Oh, this is going to be cool. I want to make it available for everybody and put it on GitHub and I haven’t touched it since.” I hope that people who are looking at that are not judging me on what I know based off of what I did on that project because that was just sort of like we weekend thing and never quite finish it you know. I probably should have gone back and deleted it but I never did.
Carlos: Yeah, that’s right, so there are all kinds of projects out there. Now, another thought or question I had was around licenses. At least in GitHub when you go up and create that repository it’s going to ask you about some licenses which admittedly I don’t know very much. I usually just take the default and put it up there. If you’re kind of just getting started and you want to start to put something up there, should they be concerned about the type of license we choose?
Steve: Well, I think only if you care about any kind of liability around your code or where it can go or who it can be used by whether people can make money out of your work. I mean if any of those things matter to you then yes you should be concerned about the licensing.
Carlos: Yeah, got you.
Steve: There are some that say, “Use this in whatever way you want but not just for commercial. You cannot make money off of it.” And then there’s others that say, “Use it in whatever way you want. But you can’t modify it.” There are appropriate licenses for almost every scenario you can imagine out there.
Carlos: Yeah, but again so I guess I wouldn’t get two bugs down into that. I think there are defaults which I can’t remember off top of my head anymore.
Steve: Yeah. Like there are some like new licensing, there are some of the MIT licensing. There are a handful of other licensing options in there. I don’t remember them off top of my head either. Just make sure you know. I mean you take a look at it at least to see what it is but don’t let that stop you. It might be that you create a repo and you realized, “Oops, that’s the wrong licensing. Maybe I have to go back and change that later.”
Carlos: Yeah, there you go and asking around never heard particularly if you know somebody else in the community. Your developer friend, they will be able to help you with it. The other thing that I think, I don’t know if it’s specific to GitHub per say. I’m trying to think about it. I’m not sure there is an equivalent in TFS but one of the things that’s going to allow you to do or that it can do for you when you create that repository just a little box just to create that “Read Me” file.
Steve: Oh yeah, and that’s super helpful.
Carlos: I think that “Read Me” ultimately is again because thinking under the premise of it being a public project is share the rules, right?
Steve: Right, but even more than that, that “Read Me” is really the main visual representation of all info around your project when somebody first visits your project page.
Carlos: The kind of why.
Steve: Yeah. And then that may link off to many other pages but it sort of like what is your project, why are you doing it, like what are the rules around it.
Carlos: Right, exactly. And you know put in some time and thought into that. Again, not to it to be fancy but at least letting people know, “Ok, the only reason this is here is because I want to add this to my body of work” or “Hey, this what I’m looking to build, I would love you would join me”, you know, that kind of thing.
Steve: Yup, definitely worth looking up for any GitHub project that someone else created that you’re viewing.
Carlos: Yeah, and that would probably another great way to get some ideas there, you know, peek around at some of the other ones. Like we mentioned, so Brent’s stuff is out there. The DBA Tools stuff is out there. I know that there are some others like all the CodePlex stuff that’s moving over. If you can find your project now in GitHub you can take a peek there because they are all going to have “Read Me” and things like that. Now, once we’ve kind of put all these together obviously at least my first interaction with GitHub and I would say 90% of my interaction with GitHub has been through the browser but there are plenty of tools that are available that you could then use to download and not to interact with the browser. I don’t know if it’s the most popular, the most common, I don’t know, this is according to Carlos. I don’t have any numbers to back that statement up, but the GitHub Desktop App. You can download that, get started and that will allow you to kind of easily upload and modify your files, interact with your repository.
Steve: Yup. Other things available there too are the Git bash shell which is what I personally use and it’s basically a bash type command shell if you’re familiar with UNIX or LINUX bash. And it has all the GitHub commands in there and you can do everything. Kind of like a DOS prompt but in a shell window that lets you not have to use your mouse and click through the GUI. I think it comes down to what you like more yourself. I mean, are you more of a mouse type person, or you are more of a keyboard person and for me the bash shell is great because I like the keyboard more than the mouse.
Carlos: There you go. And I think once you get the commands down then it becomes a little easier. Now, that is the one knock against the desktop app is that you’ll use it and you’ll never learn those commands. There is kind of a jump that you may have to take but a lot of tutorial like on YouTube and whatnot can go over the common ones. I mean, so bringing the repository down locally so you can work on it. Of course you’re saving the file and then getting it back up there. I think that’s half the battle right there.
Steve: And then sort of halfway in between those is Visual Studio. If you are working in Visual Studio you have an integrated Git project there, you can do a lot of the Git commands through just the normal Visual Studio code checking section.
Carlos: Yeah, those are nice things at least at least on the Microsoft perspective. If you’re looking to get started and you have those tools is that I think the barrier to entry is a little bit easier because it’s going to be in an environment that you’re more familiar with. Yeah, and we talk a little bit about those repositories already so now I’m curious, you came from a developer background. Did you even mess around with the desktop or did you go straight into the bash?
Steve: No I didn’t even try the desktop. I just went straight to bash. I mean, I’ve been using source control for 27 or 28 years now. I mean, most of it has been command line so that’s kind of what I learned on as a kid and grew up with.
Carlos: Right, ok. From a slightly different perspective so I did knock her up writing bash. If you’re familiar even with the RedGate stuff, their source code tool.
Steve: The SQL Source Control.
Carlos: Yeah, SQL Source Control, there you go that’s the name of it. That might be your first step. It’s a very SSMS driven interface that allows you to easily get those objects and kind of put them up, then you get into the and that innovation with GFS if you’re using that, and then kind of going into the Visual Studio stuff. I think more and more people are going to start going that route. If you haven’t already your teams are kind of expecting that, that’s their interface. I know we have problems for example and I’m sure there is a way around it, but it was difficult for us working with developers that were also writing the scripts putting in the RedGate tool. They wanted to use a single tool and at least at that time, this is a couple of years ago. At that time Visual Studio and RedGate are not quite compatible and so we ended up just having to use Visual Studio and I think that’s probably common for a lot of people.
Steve: Oh, interesting because I know I’ve used the RedGate SQL Source Control project in a software development environment where developers were making code changes and making it all in through Management Studio using RedGate’s product.
Carlos: Yeah, exactly. But then their code on the frontend side they’re going to check in through Visual Studio, right?
Steve: Oh yeah, absolutely. And some of that it was done through other tools besides Visual Studio. But that’s true, the beauty of it is that when you use like RedGate’s product it’s just part of a source control project. It doesn’t have to be that way for everything. You can use Visual Studio, you can use other stuff. Git is very open to a lot of different tools like that.
Carlos: Ok, yeah. There you go. I think where I was going is that they wanted, and for whatever reason, the developers didn’t want to have two tools to be able to check in code and so they just wanted to do everything through a single repository.
Steve: Got you, so that makes sense. Right.
Carlos: I guess we kind of talked about this but I’ll bring it back so if you haven’t gotten into that. Again, so I only have two repositories so it’s not like I’m a GitHub pro or anything. But I feel like get out there, at least create an account. Now, this brings up the question. Maybe you’re not quite ready. Maybe you have some things that you’re working on. You have some scripts, so again, I’m coming this out from a body of evidence perspective, I want my future employer to know who I am and be able to share some of the things that I’ve done, right? However, I am happy to share but I’m not interested in really the contributions perspective. Should we still encourage people to use GitHub if they are the only ones working on the project?
Steve: Let me back a little bit on a couple of terminology things before we answer that one.
Carlos: Ok, here we go.
Steve: Ok, so we’ve got Git, and Git is basically a source control product. And then we have GitHub who happens to be a hosting vendor that has free repos or paid repos or private ones. There are also other vendors out there like BitBucket which is also another Git hosted cloud based solution. Different UI tools when you’re working through the browser than you have with GitHub but still command line it’s exactly the same thing whether you’re working from the GItHub desktop. So when we say if you’re working on a project on your own and you don’t really want contribution on it. I mean, I would recommend yes you should be in source control. Does that have to be public on GiHub? No. Will it help you next time you’re in a job interview and someone wants to look at code examples you’ve worked on? Yeah, perhaps it will. But is there intellectual property that you’ve created in that source control that you don’t want to give away to the world then you should have it in source control but it probably shouldn’t be public in that case. Does that answer what you’re getting out there?
Carlos: Yeah. I mean, I think so. I think that question would be particularly if there is a scripts that you’ve written, and I think even mentioned in Justine’s script that he gave to me. I’m not sure that he is ready to show that with world just yet but it’s one of those things that you could put out there. You know, he didn’t put that together with the intention of making money on it. If you have those types of things that you could put out there, I think it makes a lot of sense to try it out. Be involved in the community and just help your name get out there.
Steve: Yup. You know I could think of one. At PASS Summit I presented, one of my presentations was on backup and recovery and I’ve shared with people a script that would allow you to build your backup script through your log chain. That was one that I have it in source control in my private repo and occasionally I just put it in a .zip file and put it out on my website. However, thinking through that that’s the wrong way to do that. I should just take that and put that one in a public repo because all the source code is available anyone who wants to use it. Just by downloading the script today and it would be a lot easier to maintain and if somebody has feedback that they want us change. That one would be much easier to do have in a public repo.
Carlos: Right, and so that’s interesting. We kind of talk about this, you know, actually before we started recording we talked about this idea of in certain cases I wouldn’t want to go to GitHub, I just download it from the person’s website. I think some of that was maybe pre GitHub, or pre open-source source control if that’s the right terminology because that was the only way to distribute some of that stuff. Now, we kind of have this defacto way of instead of me having to then take the code put it all together, compile it if that’s the stuff I have to take, and then zip it up and put it up in my website. Once I have uploaded it, now everybody else can just kind of take it from there. You saved yourself a little bit of hassle there. Yup and I think the difference there is like that restore script that I was talking about from my demo. Man, that’s a single file. If somebody wants to go and get it all you have to do is click one link to download it on GitHub or click one link to download it on my website. Either way you’re just getting a single file. But if it’s something more complex like take Brent’s blitz scripts where is that quite a few of them that different things, it might be easier to just grab it off of a website zip up versus grabbing a handful of different files to download. And I haven’t really looked at his stuff there too much but maybe he’s got a bundle or an install package now.
Carlos: Right, well I think even in that case so probably different scripts. Are you going to use all of them? It’s almost like I only care about this specific code right now instead of downloading four files I’m only going to use one of them.
Steve: Yup, and I guess I probably should have gone and looked at Brent’s GitHub setup before we talk about it. I would have been much more informed on that one. But I know I looked at it when he put it out there several months ago. I just haven’t been back since then.
Carlos: Sure. Ok, again, ultimately I thought kind of interesting conversation around how we can start interacting better with GitHub. Again, I have an account. It’s not like I have tons of repositories out there. But I feel like I’m connected. At least try to go through the motions there. I think more and more it’s going to become, I won’t say required. It won’t be required but I think we’ll just to continue to see it more and more. However, they are not the only game in town. There are lots of different, we talked about a couple, and I think ultimately our message is, “Yes, use source control and what makes most sense for you.”
Steve: Yup, absolutely. As long as you’re using source control to keep track of what you’re doing and you’ve got the appropriate ways to distribute it, GitHub is great for that, but it’s not the only tool out there. There are lots of them.
Carlos: Yeah. Ok, I think that’s going to do it for today’s episode. Our music for SQL Server in the News is by Mansardian used under Creative Comments. As always you can connect with us on social media. We would love to hear your thoughts and feedback. You can leave comments in our website and we do still allow reviews on iTunes. Those of you iTunes users we’d love for you to leave a comment there. You can connect with us on LinkedIn. I’m at Carlos L. Chacon.
Steve: And you can get me on LinkedIn at Steve Stedman and we’ll see you on the SQL Trail.