Last week I migrated the dev-bookmarks 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.
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 127.0.0.1 --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 127.0.0.1 --port 3306 --single-transaction > path_to_back_up_directory/db_name_$(date "+%Y-%m-%d_%H:%M").sql' $ mbd
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.
When managing my coding bookmarks via www.codingmarks.org, I often have the need to place in the bookmark’s description either a code snippet (might be a command), add a list or add links and emphasize words - this seems like a perfect match for Markdown1. In this post I will demonstrate how I enabled Markdown support with the help of ShodownJS2, both in front end (developed with Angular3) and in backend, developed with NodeJS4.
Whenever I look through coding bookmarks list in my browser, I get a little bit of discomfort… Why? Because for some of the “categories” like angular or java ee, the list doesn’t fit into my screen anymore, and I use a 2K resolution… Despite trying to neatly order my bookmarks alphabetically, categorize them in folders, put tags and description on them, I ended up with one big mess. You might say, so what, why not use the bookmarks manager’s search function? Well, first is that awkward keystroke combination or navigation through the menu you need to remember :) and then there is browser dependency, privacy concerns, complexity. I can add to that the “just throw it there” careless behaviour.
Why I don’t just rely on the Google/search engine? Well,
- much of the really good links I discovered were referenced from other links, which may have come up initially through a search engine
- I like having them persisted, since I put some energy in finding and using them in the first place
- privacy concerns - maybe I won’t bother when Google will be able to read my mind, or does it already?
- but the most important thing could prove to be the feedback of public bookmarks; visitors (hopefully not robots), who will be able to vote up or down a link (feature I will start working on soon)…
So, bottom line - I will have bookmarks for useful dev resources, but it will only be one link in my browser.