Dev Blog

Normally, when you use computer, there are numerous background processes which allows you to use them as a services. That is, these processes are always ready to be used. Most obvious examples for web applications are HTTP Server, Database servers - MySQL, PostgreSQL, MongoDB, ElasticSearch or many, many other. When developing web application it is sometimes desirable to have strictly application-related service which cooperates with web application in some way. The use case I plan to describe here is a service that will react on RabbitMQ messages sent by front-end. The messages are generated by using web application and the reason for using message queue is that often these tasks require additional permissions or are time consuming. 

The messages are the kind of triggers for batch processing, which might include:

  • Generating configuration files
  • Dumping database backups
  • Getting SSL certificates

Total Commander is great file manager, however renaming files is annoying requiring slow double click. The fix for this issue is to create shortcut.

  1. From top menu navigate to Configuration > Change Settings Directly 
  2. Ensure that opened file is wincmd.ini
  3. Search for [shortcuts] in this file

If you have [shortcuts] part then add F2=1002 in next line to have something like the following:


If you don't have [shortcuts] part in configuration file just add the above snipped to the end of file.

Restart Total Commander - from now on, pressing F2 will trigger in-place rename.

The Ubuntu 18.10 release is short term supported release, meaning that it will receive updates for nine months until 19.04 version. To upgrade in graphical mode open Software & Updates application, navigate to Updates tab and in the Notify me of a new Ubuntu version menu choose For any new version. Then launch Software Updated which should propose upgrading. The rest of upgrading process is guided, and basically self explaining.

Upgrading to new release of system might result in some system changes, software removal or in worst case make system unusable at all. But not in the case of updating Desktop Ubuntu from 18.04 to 18.10 which ran smoothly. There were over 1000 packages updated, very few removed - of which none were actual program, some libraries. During update there were few questions about modified config files for NGINX and X configuration. These could be avoided if the configuration were placed in different files.  Even having 26 custom PPA's did not trigger any software removal. Some PPA's were already update to cosmic release, I've enabled them automatically in a same fashion same as in previous post about updating. Then ran apt update and apt upgrade commands pair to fetch and install latest versions from custom PPA's. Upgrading to next release does disable PPA's, maybe at some day developers will add automatic enabling too:)

Knockout JS offers manual subscribing to observables, so that arbitrary code can be executed whether the observable value changes. This might be useful to update user interface when value changes, or to perform AJAX requests based on value of observable. For instance filters can be implemented, which will pull new data according to observable value. 

When using bare KnockoutJS the observable itself is object having method subscribe. Example of subscribing in bare KO: {
    console.log("Perform AJAX request with: " + newValue);