Category: Open source

  • A quick intro to the Unix “find” utility

    One of the most powerful Unix command-line utilities is “find” — but it also has a huge number of options, and most of the documentation I’ve read on “find” is hard to follow and understand.  That’s a shame, because once you understand what “find” does and how it works, you can accomplish quite a bit. …

    Read more

  • My new course, “Understanding and Mastering Git,” is now available

    Ah, Git.  It’s one of the best and most important tools I use as a software developer.   Git is everything I want in a version-control system: It’s fast. It lets me collaborate. I can work without an Internet connection.  I can branch and merge easily, using a variety of techniques.  I can take a personal…

    Read more

  • A very sad day — the end of Linux Journal

    [Update, as of August 8, 2019: Since I wrote this post, Linux Journal re-opened, thanks to a generous investment/purchase, and survived for another two years… And then, earlier today, I learned that LJ has closed, once again — and this time, for good.  This post is just as accurate today as it was when I…

    Read more

  • Aha! Preview this week’s live, online Python courses

    In just 48 hours, I’ll be starting my latest round of live, online courses. Wondering what it’s like to take an online course from me? Or perhaps you’re wondering what sorts of topics I’ll discuss in my “Python dictionaries” and “Python functions” courses? Well, wonder no more; here’s a short preview of my teaching style,…

    Read more

  • Announcing: Three new live courses, to level up your Python and Git skills

    Confused by Python dicts, or wondering how you can take advantage of them in your programs? Do you wonder how Python functions work, and how you can make them more “Pythonic,” and easier to maintain? Do you wonder why everyone raves about Git, when it seems impossibly hard to understand?  Cloning, pulling, and pushing mostly…

    Read more

  • The easiest way to return to the last Git branch

    I don’t know about you, but it’s common for me to switch between branches in Git.  After all, that’s one of the main advantages of using Git — the incredible ease with which you can create and merge branches. Just a few minutes ago, I was in the “adwords” branch of an application I’m working…

    Read more

  • Control-R, my favorite Unix shell command

    If you use a modern, open-source Unix shell — and by that, I basically mean either bash or zsh — then you really should know this shortcut.  Control-R is probably the shell command (or keystroke, to be technical about it) that I use most often, since it lets me search through my command history. Let’s…

    Read more

  • If you build it, they will come — but they might hate you

    Several months ago, I was teaching an introductory Python course, and I happened to mention the fact that I use Git for all of my version-control needs.  I think that I would have gotten a more positive response if I had told them that my hobby is kicking puppies. The reactions were roughly — and…

    Read more

  • Good intentions, unexpected results: Mailing lists and DMARC

    If there’s anything that software people know, it’s that changing one part of a program can result in a change in a seemingly unrelated part of the program.  That’s why automated testing is so powerful; it can show you when you have made a mistake that you not only didn’t intend, but that you didn’t…

    Read more

  • Convention over confusion

    One of the most celebrated phrases that has emerged from Ruby on Rails is “convention over configuration.” The basic idea is that software can traditionally be used in many different ways, and that we can customize it using configuration files. Over the years, configuration files for many types of software have become huge; installing software…

    Read more