Creating a shared calendar in Office 365

Sign into webmail and click to expand all the software available to you on the left.

Give the calendar a name and then press the Enter.

To share the calendar you can Right click on your new calendar and select Share Calendar.
Type the email address of the person you want to share the calendar with in the Share with field.
Using the dropdown menu on the right of the name, choose how much detail you would like them to be able to see.

Click the Send button. This will send the user an email with an invitation to view the calendar.

Access mysql from a remote computer

After setting up a Linux server and install MySql as a database engine, we usually are restricted to the local users. For a WordPress or a Nextcloud installation, this is not an issue. But if you want to access the MySql database from another computer, using phpMyAdmin, you get an error.

To go around this error, and have access to the database, we need to change one parameter in the MySql configuration file:

cd /etc/mysql/mysql.conf.d

sudo nano mysqld.cnf

In the file, replace the bind-address from to, and mysql database can be accessed from anywhere.

Also, the user needs to have granted all privileges to a database in order to access it remotely.

How to renew a LetsEncrypt certificate

So, I received a message by email saying that my LetsEncrypt certificate for this blog is about to expire:

Your certificate (or certificates) for the names listed below will expire in xx days

Now, in order to renew it, I opened the terminal and used this command:

sudo certbot renew

But this one can be used as well:

sudo letsencrypt renew

The message I got was this:

Processing /etc/letsencrypt/renewal/
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Cert not yet due for renewal
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
The following certs are not due for renewal yet:
/etc/letsencrypt/live/ expires on 2019-01-21 (skipped)
No renewals were attempted.

That means I need to try again in a couple of weeks using the same command.

Configure Static IP Addresses on Ubuntu 18.04 LTS Server

The way to configure a static IP in Ubuntu 18 is a bit different that the one in Ubuntu 16 and the previous versions. The file that needs to be modified is called 50-cloud-init.yaml and is located here: /etc/netplan. We will edit it.

sudo nano /etc/netplan/50-cloud-init.yaml

Originally, the file looks like this:

We need to add a couple of lines, but – very important – we should not change the indentation. I’ve struggled with some error messages when applying settings just because I’ve used TAB instead of SPACE, or because the indentation was off.

After modifications, the file should look like this:

We apply the new configuration using this command:

sudo netplan apply

NOTE: My netmask is, and that translates to 20 bits. If you have the more common netmask in your network,, then use 24 bits. Otherwise, use this table to find the number of bits required for you specific configuration:

Installing WordPress on Ubuntu 18.04 LTS

In this post, we will deploy a server with Ubuntu 18.04 LTS and install WordPress on it.

The installation of Ubuntu Server is straightforward. The only step we need to pay attention to, is the static IP. It will make the things easier later.

Once Ubuntu is installed, we need to run the two simple, yet important commands:

sudo apt update
sudo apt upgrade

Once this is done, we will install the Apache web server:

sudo apt install apache2

If everything went well, we should see the Apache default configuration page on our browser:

Next, we will install the MySQL database engine, and secure the installation (we will choose a password for the MySQL root user during this step):

sudo apt install mysql-server
sudo mysql_secure_installation

Then, we will install php and some additional modules:

sudo apt install php libapache2-mod-php php-mysql

Once this is done, we will restart and enable Apache:

sudo systemctl restart apache2
sudo systemctl enable apache2

Next, we are going to create a MySQL database for WordPress:

sudo mysql -u root -p
create database wordpress;
GRANT ALL ON wordpress.* TO ‘wordpressuser’@’localhost’ IDENTIFIED BY ‘password’;
flush privileges;

Next, edit the Apache configuration file:

sudo nano /etc/apache2/apache2.conf

Copy and paste the following block of text at the end of the file:

<Directory /var/www/html/>
AllowOverride All

Ctrl-O to save the changes, and Ctrl-X to close the file.
Next step is to enable mod_rewrite module:

sudo a2enmod rewrite
sudo systemctl restart apache2

Now comes the beautiful part of installing WordPress:

wget -c
tar -xzvf latest.tar.gz

After downloading and unzipping the files, we will copy everything in the web directory:

sudo rsync -av wordpress/* /var/www/html/

Give the right permissions for the web directory:

sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/

We need to rename the sample configuration file and edit it:

cd  /var/www/html
sudo mv wp-config-sample.php wp-config.php
sudo nano /var/www/html/wp-config.php

Put the values that you choose earlier for your database_name, db_user and db-password. Leave everything else as it is.

Save and close the file.

One more thing: remove the index.html file from the web directory, since wordpress uses an index.php to run.

sudo rm index.html


After reboot, open the IP address of your server in a browser, fill out the required fields, click on Install WordPress and start blogging !

Note: If we want this WordPress installation to be available on the internet, by forwarding port 80 to the IP address of the server and add a domain to it, it is a good practice to add a SSL certificate to our server. Check my post about adding free ssl certificate in ubuntu with let’s encrypt

Use Task Scheduler to reboot a PC every day at specific time

This task is very useful when you have a computer that does a job unattended, like running a machine in a warehouse. Windows needs to be rebooted from time to time, in order to free up memory, clean temporary files, run updates or whatever reason you may find.

Luckily, the tool to do a scheduled reboot is already available. Here’s how to use such a tool in Windows 10.

Press the WIN key, and start typing Task Scheduler until the program is displayed in the options:

Start it, and take a look at the main window:

Select Create Basic Task, on the right panel. You will be prompted to give it a name:

Then, select when the task is scheduled to run, and at what time of the day:

The next step is to specify what program will run when the task is executed:

Type shutdown, and add the /r argument in the second field. R stands for reboot.

Note: If, for whatever reason, a user is working on that computer, we need to inform him and add a delay, so he can cancel the reboot, if he wants to. We add /t and the time in seconds to delay the reboot. For example, if we want to reboot after 30 minutes, the arguments will be: /r /t 1800. In that case, the user will receive a warning and he will have half an hour to cancel the reboot. He can do that by running shutdown /a at the command prompt, or execute a batch file that contains this command. Argument /a stands for Abort. See the Addendum at the end of this post on how to create a batch file.

Select Finish to complete the task, and we’re done.


To create a batch file that will cancel the reboot, open Notepad, type the words shutdown /a in it, save it with the extension .bat instead of txt and place it somewhere easy to find. When the Scheduled Task triggers the reboot, the user will have 30 minutes to execute that batch file and cancel it.