Install Watchtower Library On Mac (with Multiple Languages)

If you have a Mac and want to install the Watchtower Library on it chances are that you will be able to do it. Here is how:

  1. Download a “stable version” of WineBottler from the official site here.
  2. Open the WineBottler DMG file that you downloaded by double-clicking on it. Once open, drag-and-drop both Wine and WineBottler into the Applications directory.
  3. Open the Wine application from the Applications menu.
  4. In the menu bar at the top of the screen, select the Wine icon (Wine.app Icon) to pull down the menu and then select the File Manager.
  5. Your prefix will be setup:

  6. Once done, click OK to see the File Manager.
  7. In the Wine File Manager you will need to click on the / (Root Directory Button) button to open a panel for accessing your local file system.
  8. There are at least three different ways to install the Watchtower Library:

    1. From the Watchtower Library DVD:

      1. Insert the DVD.
      2. In the Wine File Manager you will need to click on the / (Root Directory Button) button to open a panel for accessing your local file system.
      3. Go into the Volumes directory and then into the directory with the name of your Watchtower Library DVD (eg. WTLIB16S).
        Wine File Manager
    2. From an archive file (eg. ZIP):

      1. Uncompress the archive file. If this is a ZIP file you can simply double-click on it and once done a folder containing the uncompressed files will be selected.
      2. Open the uncompressed folder, finding the Setup.exe (or WTLSetup.exe) file.
      3. In the Wine File Manager you will need to click on the / (Root Directory Button) button to open a panel for accessing your local file system.
      4. Navigate to the folder which contains the Setup.exe (or WTLSetup.exe). For example, if your folder containing the uncompressed files is in your Downloads folder you will want to navigate to Users » user-name (eg. cwest in my case) » Downloads » name of the uncompressed folder.
    3. From a folder:

      1. Navigate to the folder which contains the Setup.exe. For example, if your folder containing Setup.exe (or WTLSetup.exe) is in your Downloads folder you will want to navigate to Users » user-name (eg. cwest in my case) » Downloads » name of the folder.
  9. Double-click the Setup.exe (or WTLSetup.exe) file.
  10. Click through the steps to install the Watchtower Library in the default location (normally C:\Program Files\Watchtower).
    Installation
  11. Repeat the previous 2 steps for each additional language if you have other languages in which you would like to install the Watchtower Library and if you have the media (DVD, archive file, or setup folder) to do so.
  12. Download this file and double-click it in Finder to unzip it.
  13. Move the uncompressed Watchtower Library.app to the Applications folder.
  14. Click on the Watchtower Library from the Applications menu in the Dock.
  15. Select Add Library from the list and then click OK.
  16. Navigate to your home directory (the folder with your user name).
  17. Open up Wine Files » drive_c » Program Files » Watchtower » Watchtower Library.
  18. Open up the folder representing the language that you want to start off with. If there is only one folder just open up that folder.
  19. Select the file wtlibrary.exe (the casing of the file name doesn’t matter).
  20. Enter the name of the language of the library that you selected in the previous step.

Finally Done!

Now you should see the Watchtower Library open.

Whenever you click on the Watchtower Library app you will now see a menu similar to this one:

Installing Another Language

  1. Click on the Watchtower Library from the Applications menu in the Dock.
  2. Select Other Options from the list.
  3. Select Add Library.
  4. Navigate to and select a wtlibrary.exe that hasn’t yet been selected.
  5. Enter the name of the language of this version of the Watchtower Library.
  6. Now Watchtower Library is setup for multiple languages.
  7. Now when you click on the Watchtower Library app again you will see multiple language entries.

Conclusion

I know that I wrote another post in April 2016, but I hope that this post will be more helpful. There are a few other advanced options that you can explore, but I hope that this solution simply works. If you encounter a problem or have some feedback please let me know. Have fun! 😎

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! 😎