• What is `Box` and how is it different from `String` in Rust?

    Today I and a friend went down a rabbit hole about Rust and how it manages the heap when we use Box, or String, or Vec, and while we were at it, I found out there is such a thing as Box<str>, which might look a bit strange to an untrained eye, since most of the time the str primitive type is passed around as &str.

  • Typoclassopedia: Exercise solutions

    I wanted to get proficient in Haskell so I decided to follow An [Essential] Haskell Reading List. There I stumbled upon Typoclassopedia, while the material is great, I couldn’t find solutions for the exercises to check against, so I decided I would write my own and hopefully the solutions would get fixed in case I have gone wrong by others. So if you think a solution is wrong, let me know in the comments!

  • Difference between Travis CI tests: PR and Push

    I just want to leave this here as I often tend to look it up myself and the first time it was not as easy to figure out.

    When using Travis CI along with GitHub (or other git integrations), Travis runs two tests: pr and push.

    travis-pr-push-github

    Most of the time you see both tests passing and you do not have to even wonder how they are different, but it has happened to me that one of the tests fails while the other passes and I started to wonder why.

    pr

    The pr test is a test run on the result of a merge between the pull-request branch and the main branch. As an example, let’s say your pull-request’s branch is called fix-user-auth and your main branch is master, in this case, pr merges fix-user-auth into master and then runs the tests on the result of the merge.

    push

    On the other hand, push is run on the pull-request branch itself, without merging. So in our example above, Travis would checkout to fix-user-auth and run the tests.

    A case of difference

    A case in which this difference might be more apparent is when your pull-request is based on a branch other than master, and some changes that your pull-request depends on are missing from master, in this case the push test may pass, but the pr test will fail.

  • Open-source: The Good, The Bad and The Ugly

    I have been doing Open-source for a while, I don’t call myself an “expert” or something like that, but I’d like to share my opinion and experience on contributing to, and maintaining open-source code.

  • Autocomplete using Tries

    In this article, I’m going over creating an autocompletion/prediction system using a data-structure called Trie, it’s fast and easy to customize.

  • ES7 Array and Generator comprehensions

    Array comprehension is a new feature proposed for ES7, with a new syntax to create new arrays from existing iterables, comprehensions can replace map and filter.

  • BroadcastChannel API

    BroadcastChannel API is a new API used to communicate between same-origin tabs opened by the same user.

  • CSS Filters are awesome!

subscribe via rss