Sing to Jehovah & Sing Out Joyfully Comparison

Recently I had the desire to see a comparison of the old Sing to Jehovah songbook compared to the new Sing Out Joyfully songbook. Here is the result:

Español (Cantemos a Jehová / Cantemos con Gozo a Jehová)

Para todos que quieren ver una comparación del cancionero “Cantemos a Jehová” con el nuevo “Cantemos con Gozo a Jehová“, pueden escoger Español de las pestañas arriba.

Português (Cantemos a Jeová / Cante de Coração para Jeová)

Para todos os que querem ver uma comparação do cancioneiro “Cantemos a Jeová“, com o novo “Cante de Coração para Jeová“, você pode escolher Português das guias.

Download Options

If you would like to download the above table you can choose from the following formats:

Enjoy! 😎

ES6 – Convert To Integer

There are various ways to convert a string or a floating point number to an integer in JavaScript, but not all of them may suit your needs. In this post we will examine four different ways and then we will see which is the best in all cases.

Solution #1: ~~x

If we are dealing with smaller number then we can leverage bit-wise operators such as bit-wise negation (~). The reason we can only use this solution for smaller numbers is because bit-wise operations can only be executed on a number in the range of -(231) to 231 - 1. If the number is outside of that range it will be converted to a number within that range (eg. -2147483649 becomes 2147483647 and 2147483648 becomes -2147483648).

Solution #2: parseInt(x, 10)

There is actually a function that will convert strings into numbers called parseInt(). We can use this function and specify the base to ensure that numbers starting with 0 will not be parsed as octals (eg. parseInt('010') produces 8 in older versions of ECMAScript).

Solution #3: +parseFloat(x, 10).toFixed(0)

We can also use the equivalent function to parseInt() for floats which is parseFloat(). After that we can use Number.prototype.toFixed() to make the number a string representation of the truncated number. Finally we can prefix this expression with a plus sign (+) to convert the string to a number again.

Solution #4: Math.trunc(x)

We can use the newer Math.trunc() function which should in theory just do what we want 😆 .

Results

Below are the results of using your browser to test out each solution:

    Conclusion

    If you have looked through the results above on a modern browser (one implementing Math.trunc()) you’ll notice that for all of our test cases, it is the only solution that works for them all. Therefore, if you are looking to convert floating-point numbers to integers or strings to integers, the most convenient and straightforward way may in fact be ES6’s new Math.trunc() function. Let me know what you think and as always, happy coding! 😎

    CSS – Local File System Paths On Windows

    When working with Windows you probably have noticed that local file paths use the backslash as the path separator. Although this is the case, even on Windows, in CSS you can use the forward-slash as a path separator to reference an image. If you want to use the forward-slash though, you must escape it with another backslash. Here are two examples:

    #elem1 {
      background-image: url("relative-path\\to\\file.ext");
    }
    #elem2 {
      background-image: url("C:\\path\\to\\file.ext");
    }
    #elem3 {
      background-image: url("relative-path/to/file.ext");
    }
    #elem4 {
      background-image: url("C:/path/to/file.ext");
    }
    

    As you can see above I have three different ways to add a background image:

    1. url("relative-path\\to\\file.ext")
      For the element of ID “elem1” I am specifying that the background image is found at the relative path of “relative-path\to\file.ext”. It is important to note that I am escaping the backslashes (path separators) with an additional backslash.
    2. url("C:\\path\\to\\file.ext")
      Just as in the previous example, if we need to reference something using an absolute path while maintaining backslashes as path separators, we need to escape all backslashes with a preceeding backslash.
    3. url("relative-path/to/file.ext")
      For the element of ID “elem2” I am specifying that the background image is found at the relative path of “relative-path/to/file.ext”. Even though the normal path separator on Windows is a backslash you can use a forward slash.
    4. url("C:/path/to/file.ext")
      Just as in the previous example, if we need to reference something using an absolute path we can use a forward slash as the path separator.

    This may seem like a minor issue but when developing Electron apps it may come in handy. Have fun and as always, happy coding! 😎