Skip to main content
Building A Calendar Gem:

Open Source Vlog - Where Do We Even Start?

Episode 62 · June 24, 2015

I want to do open source every day. How do we even get started?

Open Source


Earn a free month

What's up guys? I am starting off my very first vlog. So what my plan is for this is to record a video every single day for at least five minutes and put something out there every day, and work towards doing more open source stuff. Now I have a lot to thank the open sorce community for. Pretty much everything I do since I got into programming has been related to some open source software and it's amazing. I got into Python and Ubuntu Linux and Django and Ruby on Rails and Ruby, and that's what I do now. I live and thrive on all this open source stuff. So the first thing I'm going to be doing is starting a vlog so that we can go through this journey together. I want to do a lot more open source work, and if you check out my GitHub page, you can see the graph of open source commits over the past year actually. So the longest streak I've had is actually five days, and that was five days last year, that was almost a year ago, it's been a long time. Not quite a year but like 9 months or something, so I haven't done enough open-source work, and I want to do a lot more. There's a lot of repositories that I've created, and I've worked on a lot of different things, but I really really want to take this and do more, there's a lot to share and I know a lot of people learn from it, and I want more people to get involved with open source because it's amazing. Without further ado, let's get started by trying to figure out what we're going to do first in open source.

Where should we start with open source? Ideally I would like to be contributing to Rails core, and that would be really awesome, we have rails GitHub up here, and there's like 350 open tickets, which is a lot. It's a good place to maybe start looking for potential places where we could contribute. The other thing that's really interesting here is that there's almost 500 pull requests which is weird because normally every pull request has an issue attached to it, i thought. That means that there's almost 500 people asking to say: Hey, I wrote some code for rails. Please include this, that's a lot of outstanding things, so a lot of these are probably sort of controversial or maybe not the best thing to include in rails, so this may be really hard to get started in. And it might be that this first day we kind of browsed through some of these open tickets and decide: Is there anything we can contribute to, or can we maybe dive into something else, and I've opened up devise here, because potentially devise has much more useful or manageable issues. Devise has 15 issues and 8 pull requests, which is much much easier to get involved in, and these are a lot simpler actually. So jumping straight into contributing in rails may not be the best idea, and worst case scenario, if we don't find anything interesting in devise I've created a gem called simple_calendar which could use a lot of work. Refactoring that would be really awesome, and there's a lot of things I think it could be improved and it's got a reasonable amount of forks and people watching it. Quite a few people use it, so maybe simple calendar is what we decide, and I think maybe just this first episode the first day let's just decide what we want to work on. I use devise on pretty much everything, you know rails of course is used more, but devise, I use a lot and I really like how it works, so let's just browse through these open issues and see what we've got.

"These two views are not protected against format"? That seems fine, it also seems kind of like a thing we should probably leave up to the maintainers to decide. It doesn't really matter, it's not like a useful feature, it's kind of just a little bug that maybe, it's just a semantic thing that's not really too interesting. "Testing the project against rails 4.2.3.rc1" might be good. It doesn't look like many people have done this, and maybe it's worth upgrading Rails to 4.2.3 rc1 and testing both that and devise. Looks like no one has really done it, these two guys are maintainers on devise, so maybe this is something we can jump in on. I don't really know, we probably need to look at what changed in 4.2.3 rc1, because that's the important piece. The changes here would affect the things there. Some reading and analyzing goes on. Some of these ActiveRecord ones might actually affect the way that devise works, so maybe checking your ActiveRecord associations and making sure they still work would affect it. Maybe there's some view related things or Active Support, nothing interesting here. Maybe this is something we'll do, maybe upgrade rails 4.2.3.rc1 and see today's the 24th and they're looking for releasing this tomorrow. So we kind of don't have too much time to fiddle with this, and we probably won't be able to help them too much. It seems unlikely that we won't run into any issues.

"Undefined method ago for 1800", looks like that one is kind of different. "Redirect the loop when using authenticate in routes". This one seems well documented. This authenticate method, I've actually worked with in the past and it's really cool, in devise normally you put the before_action :authenticate_user in top of the controller, but you can actually move that to your routes and use an authenticate block which is actually really cool, and they seem to be wrapping this around Sidekiq's web interface, and it seems like according to this bug report when you use that authenticate it tacks on /admin/sign_in and this is generated from the authenticate thing, but it looks like what is happening is this adds it relative to the url. So it tacks it on the end instead of putting it and replacing the whole url, and it should be localhost:3000/admin/sign_in*. So it looks like a recent bug has done this, and he actually pulled out the pull request that broke it, which is very interesting. For one, hearing the word "workaround" at the beginning here is kind of not a great sign, this may have been a bad patch or a bad hack or something, I don't really know a bunch about mounting rails engines or how that works, this could be something we can dive into, but seems this could be over our heads and we would actually need to understand this previous issue well before we can fix this one and yeah, it's kind of a more complicated thing.

Here's another one, another basic post to that same issue: "Users can spam one another with :confirmable". What heppens is: Your original email addres, when you sign up with this bug, you sign up for that, so "[email protected]", maybe I decide to chang my email to something else, and maybe that's your email address, and what it has is that I'm still logged in as my old one, it knows the new one, and it won't switch them until I confirm it, and it means that in between them, you could sing up with your email address, and then I could send it, so there would be me and you, and I'm trying to change mine to your email, and then I can just span you with these emails, resending the confirmation email. Seems like really convoluted and probably low priority. I imagine they're going to fix it, but it doesn't quite seem it's anything we want to work on, and it's also been around since April, and it's not anything that they're really going to put on the high priority list and get fixed and you know in the last 30 days there's only been a handful of thing left.

I think we're going to leave devise alone for now. Rails is overwhelming to get started with and we'll work our way into it, I don't really start there. Let's just call it here, call it quits for the day, we're going to work on simple calendar, and I'm going to outline tomorrow what we're going to work on, and then maybe we could set this up so we can outline all of the todo's and then other people can get involved working on simple_calendar with me. So maybe we'll just make this into a community project that needs a lot of work. But it's a good start, and it produces calendars like this if you're using bootstrap pretty much out of the box which is cool. So yeah, let's take a look at that and see where we can go with it. Seems like a good plan. Peace

Transcript written by Miguel


Subscribe to the newsletter

Join 31,152+ developers who get early access to new screencasts, articles, guides, updates, and more.

    By clicking this button, you agree to the GoRails Terms of Service and Privacy Policy.

    More of a social being? We're also on Twitter and YouTube.