Category: Coding

  • Error handling in concurrent programs in Golang

    Error handling in concurrent programs in Go consists of little more work than if err != nil { return err } because the return value doesn’t reach intended receiver (for example in parent function where function was fired as a goroutine using go keyword). Just as we use channel for sending resulting data, we must…

  • Libraries over frameworks

    Lately (in term of years) I noticed I prefer using libraries over frameworks. Or in other words I like to use packages that each do their one thing well rather than one package with all batteries included. I recognize both libraries and frameworks have their pros and cons. You can see my preference for libraries…

  • Context package in Golang

    Go has a package named context in its standard library. It’s responsibilities are cancelations and carrying request-scoped data (but that doesn’t mean it’s only used in HTTP handlers). I’ve learned it in two parts. For a long time I used it only for storing request-scoped data in HTTP middlewares, but recently I’ve learned the rest…

  • Exercism – solving programming exercises with cool approach

    For the past month, I’ve been enjoying Exercism.io, a platform which gives you programming exercises to solve. There are two things I find so cool about it. First, you are fetching exercises and submitting their solutions from the command line. Second, you can easily view how others have solved the same exercise after you’ve submitted…

  • A Movie Downloader (a weekend project in Go)

    Last weekend’s project I made was a CLI downloader, named A Movie Downloader (movie-dl), that searches for a movie and downloads both magnet link and a matching English subtitles. A magnet is then opened with Transmission that handles its download. Subtitles are placed in a folder where a movie will be downloaded. That meant that…