I am really happy to announce that we’ve reached and surpassed our goal of 1Mb of #DevBookmarks. This was possible by importing the free programming books from the Free-Programming-Books project, which is one of the most starred repository on GitHub.

You can look for all imported free books by typing [free-programming-books] (tag filtering) in the search bar, or by provide it as query parameter: https://www.bookmarks.dev/search?q=Bfree-programming-books%5D. Either way you should get a result similar to the following:

Results when search for free-programming-books tag
Continue Reading ...

In this guide we are going to:

  • install the latest NGINX version in Ubuntu 16.04.1
  • understand configuration files
  • generate SSL certificates and configure them in NGINX
  • configure NGINX as reverse proxy

NGINX is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. We use it in the #DevBookmarks project as web server to serve static files and as a reverse proxy for the NodeJS API and Keycloak Server:

Network Diagram

Continue Reading ...

Last week I migrated the www.bookmarks.dev project to use Angular CLI and it’s awesome. Initially it was based on Angular Seed with Webpack - preboot/angular-webpack. I couldn’t take the update breaking changes pain anymore when I wanted to add Ahead-Of-Time compilation1 support. My webpack2 configuration was also getting out of hand. But I did it, I moved it to Angular CLI and in this post I am going to list the major steps I had to take. It is based on the Moving your project to Angular CLI story with my own needs and flavor added to it.

Continue Reading ...

As I have told you before, I am really hooked on bash aliases1. This blog entry emphasizes that point and presents how to make a MySql database backup via mysqldump with only three words, even with three letters, if you will.

So, without further ado, let’s see the alias:

$ alias mysql-backup-db_name='mysqldump db_name -u db_user -p -h --port 3306 --single-transaction > path_to_back_up_directory/db_name_$(date "+%Y-%m-%d_%H:%M").sql'
$ mysql-backup-db_name

or, same with three letters:

$ alias mbd='mysqldump db_name -u db_user -p -h --port 3306 --single-transaction > path_to_back_up_directory/db_name_$(date "+%Y-%m-%d_%H:%M").sql'
$ mbd
Continue Reading ...

When I add a new bookmark to my bookmarks collection, I set the title of the new bookmark, most of the time, the same as the title of the web page being bookmark - I assume the authors have put some thought into it. To make this happen automatically, I am using a technique called web scraping1. I cannot do it in front end (angular), since most of the URLs are outside of the https://www.bookmarks.dev/ domain. So the magic happens in back end, in NodeJS, with the help of a library called cheerio2, thank you Matthew for that. Cheerio is a fast, flexible, and lean implementation of core jQuery3 designed specifically for the server. Read on to learn how this works.

Octocat Source code for bookmarks.dev is available on Github - Star

Continue Reading ...