I have been maintaining hub , the command-line git extension, for 10 years. After 2,100 issues and pull requests closed, 18k+ stars on GitHub, and countless hours invested in it, I thought it might be fitting to reflect on its unlikely past, share a bit about my process working on it, and address the future of GitHub on the command line. In 2010, the entire implementation of hub 1.0 sat in a…
Every line of code comes with a hidden piece of documentation. Whoever wrote line 4 of the following code snippet decided to access the clientLeft property of a DOM node for some reason, but do nothing with the result. It’s pretty mysterious. Can you tell why they did it, or is it safe to change or remove that call in the future? 1 2 3 4 5 6 // ... if ( duration > 0 ) this . bind ( endEvent ,…
Travis CI added a feature to cache dependencies between builds for their paying customers. In projects where resolving and fetching dependencies is a slow operation–e.g. in any Ruby project–this can shave a significant amount off total build time , resulting in faster feedback from CI for the developer. This post explores a DIY method of providing such a cache to open source projects as well .…
We’ve all been there. The dreaded error: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed It’s seemingly random, it mentions “SSL” five times, and happens mostly after installing a new version of Ruby or deploying code to a new server. It bites at the worst times and can make you feel small and powerless. “But I’m not a crypto…
Using many control keys during the day, such as Ctrl-f to page down in Vim and Ctrl-c to kill a process in terminal, and assigning some of my own to tmux, I’ve began wondering whether all the letters of the alphabet were accounted for. The answer is: yes, they are; plus even some extra characters. Most key bindings differ depending on the context, except ones in the “term” column that always keep…