GitHub is more than a home for code. It’s a forum for collaboration, a sandbox for testing, a launchpad for deployment, and often, a platform for learning new skills. After training thousands of people to use Git and GitHub, the GitHub Training Team has established a tried-and-true method for helping new developers retain more information and ramp up quickly as they begin their software journeys. And now, we’re making those experiences accessible to developers everywhere with GitHub Learning Lab.
Instead of a traditional tutorial or webcast, GitHub Learning Lab is an app that gives you a learning experience you can actively participate in, without leaving GitHub. Our friendly bot will take you through a series of practical, fun labs that will give you the skills you nee
At GitHub, we use Puppet to manage all our physical and virtual hosts’ configurations based on app-role combinations. Having become familiar with Puppet over my tenure there, I finally decided last month that I should be using Puppet to manage my own servers.
When I was just graduating from college and had a steady income, I finally decided it was time to have my own cloud server. Rackspace was the easiest choice back then, and I spun up a server with CentOS 6. Being new to server administration, I spent a long time organizing the packages and apps I installed. I ran a few Ruby web apps and hosted my static site built with Jekyll. I even went through the arduous process of manually configuring postfix to receive email for me on this host. Needless to say, I learned a lot.
In responding to a Jekyll pull request, I went digging around the way Ruby
handles sorting. The problem was that we were trying to sort a list of
objects which don’t all have a given property. The contributor was using
sort_by which throws an ArgumentError if the block returns a
at all. We had a sparse property we wanted to sort by.
Our typical solution to this is something like:
def sort_sparse_property(objects, property) objects.sort do |apple, orange| apple_value = apple.public_send(property) orange_value = orange.public_send(property) if !apple_value.nil? && orange_value.nil? -1 elsif apple_value.nil? && !orange_value.nil? 1 else apple_value <=> orange_value
If you follow the Jekyll community, you might have noticed that I haven’t been as active in the last year or two. Part of this is due to life events usurping my free time, and part of this is something else entirely: paralysis. I want to discuss today the paralysis.
Ask any open source maintainer what their job description is, and you’ll likely hear about reviewing patches sent from community contributors as a major responsibility of a maintainer. Maintainers are gatekeepers: they decide what code makes it into the project and what code doesn’t. Part of this is flat-out rejecting proposals (“This feature will not be accepted because it does not fit into the philosophy of the project.”) and part of this is working with contributors to get the functionality proposed up to code styl
You might have heard of a neat new project called JSON Feed. It’s a project to create a spec to create feeds in JSON. It’s easier to parse than RSS/Atom’s XML. JSON is also easier to check for errors: either it parses or it doesn’t. It’s easier to write than In my opinion, it’s a huge improvement on shipping serialized content. I have added a JSON feed to this site, and we’re working to add it to the jekyll-feed plugin or ship as a separate plugin.
If you want it now, I’d recommend using @vallieres’s
John Gruber wrote about a JSON Feed Viewer, too, which shows off the power of this stuff. :heart:
In my last quick tip, How to Build Customizable HTML Widgets in Jekyll, you learned how to make your own dynamic widgets for Jekyll websites. Today, I'm going to show you how you can use that knowledge to integrate your Jekyll-based website with Gumroad's services to add really powerful e-commerce functionality in just a few seconds.What is Gumroad
For those of you who don't know, Gumroad is a San Francisco-based e-commerce startup launched in 2012. Their service is geared towards making e-commerce easy for content creators.
In addition, Gumroad also offers useful tools that enable you to track sales and market your products to potential customers. You can read more about all that on Gumroad's website.
For web designers, Gumroad makes available some excit
The static site generator Jekyll is known in web design circles for being light-weight and "hacky". But that is only part of the truth. Jekyll is surprisingly powerful in terms of what you can do with it, and how user-friendly you can make it to non-technical users and clients.
In this quick tip, I will show how you can build HTML widgets that your clients or team members can easily customize and include anywhere in a Jekyll project—no Ruby plugins needed, just Liquid, the open source template language created by Shopify, and good old HTML.Setting Variables
There are several ways of setting variables for customization. In this article, I'll introduce two of them: the inline and Front matter methods.Inline Variables
Setting variables inline is the best op