Mac OSX installing software update

Mac OSX “El Capitan” software update stuck on “11 minutes remaining”

When installing a software update for Mac OSX “El Capitan” that required a system reboot to install, it seemed stuck on the white screen displaying a text “Installing software update: About 11 minutes”.

Mac OSX installing software update

Mac OSX installing software update

The solution was quite simple – just wait. It seems the time calculation is really off. After about an hour it stepped down to 10 minutes, so it’s not stuck. It just takes a lot longer than the system calculates.

Automatic SMS / text message to email forward

Sometimes my clients send me messages as SMS or “texts” on my mobile phone. That might be relevant for an urgent matter but often is being used instead of mail. From my clients view, they just see it as another, non-intrusive, way of sending me a message instead of calling which is polite as a phone call can be more interrupting than a text message.

A problem with SMS or text messages is that when they arrive I must read it to be able to decide if it is urgent and need immediate attention or if it can be responded to later. Once read, the “new message” notification on my phone is gone and I must remember to handle it later. There is a risk that I might forget.

My clients are also the reason I’m in business so I’m not complaining about my clients contacting my in any way (well ok, I might complain if they call me at 3 in the night wanting to discuss some non critical issue 🙂 ). Instead I find solutions and make things work better.

So one way of handling the problem of forgetting matters sent to me via SMS or text was that I installed an app in my phone that automatically forwards any incoming SMS as an email to my inbox. That way I can sort it into my normal work handling queues or even my ticket system.

There are many apps available for this, some free, some paid, with different amount of features in it. Some has advanced filtering and some can forward only messages from specific senders (or vice versa, forward all messages except from specfic senders).

In my case the best solution was just a simple app that forwards all incoming SMS as email so I use Relay Me (yes, I use Android) which works for me. There are probably similar solutions on other, non Android, platforms.

The best solution is to set up a specfic email account for the app (like yourphonenumber@somedomain.com for example), not using your normal email account, because the app works both ways. If you reply to an email on your inbox that originated as a SMS via Relay Me, the reply will be picked up by the app and sent back as SMS to the sender.

For obvoius reasons the app will need data connection to the Internet to be able to send emails, so having a data plan on your mobile subscription is a good idea. The reason I liked Relay Me was, apart from other things, that it works directly with my own email servers, so there are no intermediate servers handling my messages.

How to add GDPR consent checkbox to Joomla! contact form

It is quite simple to add a GDRP consent checkbox to the Joomla! contact form by using the custom fields feature in Joomla 3.

    1. Go to Components -> Contacts
    2. Click on Fields in the left hand menu
    3. Select Mail in the drop down above the fields list
      Joomla! Contact form GDPR consent checkbox

      Joomla! Contact form GDPR consent checkbox

       

    4. Click on New to create a new field
    5. Select Type = Checkboxes, Required = Yes
      Joomla! Contact form GDPR consent checkbox

      Joomla! Contact form GDPR consent checkbox

       

    6. Click on the “+” sign at Checkbox Values and enter your consent text in the Text field, like for example “I consent to thesite.xxx collecting and storing my data from this form“ (replacing “thesite.xxx” with your site name and please note). Enter “Consent” in the Value field.
    7. Click on the Permissions tab and set Edit Custom Field value to Allowed for the user group Public.

      Joomla! Contact form GDPR consent checkbox

      Joomla! Contact form GDPR consent checkbox

    8. Click Save.
    9. Now you a required consent checkbox should appear on your contact form.

How to migrate Phoca Gallery from Joomla! 1.5 to 3

There are some guides on how to migrate Phoca Gallery from Joomla! 1.5 to 2.5 and from 2.5 to 3 but in my case I had a really old 1.5 site that was going to be migrated from Joomla! from version 1.5 to 3. The process is very similar to migrating 1.5 to 2.5.

This is how I did it.

You will need access to both sites through:

  • FTP
  • MySQL using for example using phpMyAdmin

Files

Transfer images/phocagallery including subdirectories from the old 1.5-site to the new version 3-site

Database

  • Log in to the Joomla! 1.5 database using phpMyAdmin.
  • Go to export and select all tables beginning with the name jos_phocagallery
  • In Output select to Save output to a file
  • In Dump table select Data
  • In Syntax to use when inserting data select both

 

  • Using phpMyAdmin on your Joomla! 3-database, find out what database prefix is being used. If it is not jos_ (the default of Joomla! 1.5) open the SQL-file from the export above in a text editor
  • Do a Search and Replace, search for “jos_” and replace it with the “prefix_” of your Joomla! 3-database
  • Save the file

 

  • Using phpMyAdmin on the Joomla! 3-database, use Import to import the SQL-file
  • In phpMyAdmin, go to the SQL-tab and paste the below SQL-commands (if the database prefix is not “jos_” replace it with your “prefix_” before pasting:


UPDATE `jos_phocagallery` SET `language` = '*';
UPDATE `jos_phocagallery_categories` SET `language` = '*';
UPDATE `jos_phocagallery_comments` SET `language` = '*';
UPDATE `jos_phocagallery_fb_users` SET `language` = '*';
UPDATE `jos_phocagallery_img_comments` SET `language` = '*';
UPDATE `jos_phocagallery_img_votes` SET `language` = '*';
UPDATE `jos_phocagallery_img_votes_statistics` SET `language` = '*';
UPDATE `jos_phocagallery_tags` SET `language` = '*';

If access was not set in Phoca Gallery in Joomla! 1.5 and all categories are public, likely, you need to run the following query:

UPDATE `jos_phocagallery_categories` SET `access` = '1';

It is a good idea to go through and check all settings for Phoca Gallery.

How to disable iCloud sync on Mac while on mobile data

When you are connected to the Internet through a network with limited bandwidth or restricted data plan it is desirable to reduce the data consumption. In this case, disabling iCloud sync is something you want to do.

In Windows, you can easily mark a wifi network as limited by data plan and this will automatically inhibit Windows updates to download and it will also make cloud services not to sync.

In the world of Apple and Mac OSX, it seems like Apple assumes that when you are on a wireless or wired network, bandwidth is unlimited. Period. If this only was true, what a great world to live in! The news is that this is not how it works in the real world. Unfortunaly, because of this there is no function to disable or pause iCloud syncing at all. A simple feature present in all other cloud services like One-drive, Dropbox etc.

The solution, which works excellent is called TripMode. This piece of software gives you the control you want over any application using your Internet data.

 

Mega Menu doesn’t display down arrow for submenus

The WordPress plugin Mega Menu has the possibility to display a “down arrow” for a menu item where a submenu is available (i.e. the menu item has “children”). The problem was that the arrow was not displaying.

It turned out it was a collission with the theme, Cherry Framework 4. In the settings of the theme’s native menu, there is a possibility to enable “arrow markups”. When this is enabled in Cherry Framework 4, the arrows in Mega Menu is not displayed.

Solution: Go to Cherry -> Options -> Navigation -> Set Arrows Markup = off

Resize EFI partition but the 16 MB MSR partition is blocking

With Microsoft Windows 10 Fall Creators update many users have ran into problems updating becuase their computer was installed with a too small EFI partition (100 MB). I’d consider this a warranty issue with the computer supplier, becuase obviously the computer wasn’t Windows 10 ready. The problem is that the hardware supplier will happily take your machine in, erase it and factory install it with a new Windows 10 image with a bigger EFI, but you will lose all your data.

A solution would of cause to make a backup and let them erase the machine but some of my clients have computers that will take 1-2 work days to reinstall and configure all software. So resizing the EFI is preferred.

This guide shows a simple way to do it with EaseUS partition master (requires to buy a license, but 50-60 usd is worth it if I can save 1-2 days of work). The problem is that in my case it wasn’t so simple as the guide shows, because there were no unallocated space after the EFI partition and the 16 MB MSR partition following it wasn’t possible to move. The layout looked like this (simplified):

EFI-partition -> 16 MB MSR partition (file system type “Other”) -> circa 500 GB NTFS Windows partition (C:)

This is how I solved it using EaseUS partition master:

  • Backup, backup and backup all your data! If something goes wrong this is your life line.
  • Resize the 500 GB NTFS partion, shrinking it and creating 32 MB unused space after the NTFS partition (I first tried 16 MB but wasn’t able to clone the 16 MB MSR partition to it, displaying an error message saying it wasn’t enough space), apply changes and let the system reboot
  • Select the 16 MB MSR and clone it to the unsused 32 MB space
  • Resize the 500 GB NTFS partition, shrinking it creating 400 MB unused space before the NTFS partition, apply changes and let the system reboot
  • Now there is 400 MB unallocated space between the EFI and NTFS-partitions. Select the EFI partition and resize it to 500 MB, apply and reboot

 

Cherry Framework 4 header not using full page width when breadcrumbs are disabled

When you disable breadcrumbs in Cherry Framework 4, it still reserves space for it in the header/title section of the page. This is a bit annoying, because it makes the title wrap when there still is space on the right side.

A simple CSS solution can fix this. By applying this, the breadcrumbs will not be visible even if they are enabled again.

.cherry-breadcrumbs .col-md-5 { /* no breadcrumbs, title in full width */
width: 100%;
}
.cherry-breadcrumbs .col-md-7 { /* no breadcrumbs, hide the breadcrumb container */
display: none;
}

Ispconfig 3.0 to 3.1 update issue – PHP-FPM and SSL problems

After updating a multi server installation of Ispconfig3 problems occured when editing existing or adding new websites on one of the servers.

  • If the site had SSL enabled the apache2 vhosts file for the site (located in /etc/apache2/sites-availible) would get empty values for SSLCertificateFile, SSLCertificateKeyFile and SSLCertificateChainFile fields, causing it to revert to old configuration or not load the site at all. At some point apache2 wouldn’t reload at all so to get it upp the site had to be disabled by removing /etc/apache2/sites-enabled/100-sitename.vhost file.
  • If the site was running under PHP-FPM the site would report Internal server error 501 caused by the socket file /var/lib/php5-fpm/webXXX.sock was owned by root and not by the web user. This in turned was caused by the fields listen.owner and listen.group in webXXX.conf (for PHP-FPM) was empty.

Since this was a multi server installation and this problem only occured on one server they could be compared. It turned out that the problem was caused in the directory /usr/local/ispconfig/server/plugins-enabled. The files in this directory should be symbolic links to the corresponding files in /usr/local/ispconfig/server/plugins-available, but after a move of the Ispconfig3 installation from an older server, these links had become real files instead of symbolic links.

This meant that the files in /usr/local/ispconfig/server/plugins-enabled was still Ispconfig 3.0 files while the ones in /usr/local/ispconfig/server/plugins-available was Ispconfig 3.1. To resolve the problem, to be on the safe side, make a backup of /usr/local/ispconfig/server/plugins-enabled and then run:

cd /usr/local/ispconfig/server/plugins-enabled
ln -s -f /usr/local/ispconfig/server/plugins-available/apache2_plugin.inc.php apache2_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/apps_vhost_plugin.inc.php apps_vhost_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/aps_plugin.inc.php aps_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/bind_plugin.inc.php bind_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/cron_jailkit_plugin.inc.php cron_jailkit_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/cron_plugin.inc.php cron_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/firewall_plugin.inc.php firewall_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/ftpuser_base_plugin.inc.php ftpuser_base_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/getmail_plugin.inc.php getmail_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/maildrop_plugin.inc.php maildrop_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/mailman_plugin.inc.php mailman_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/mail_plugin_dkim.inc.php mail_plugin_dkim.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/mail_plugin.inc.php mail_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/mysql_clientdb_plugin.inc.php mysql_clientdb_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/network_settings_plugin.inc.php network_settings_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/postfix_filter_plugin.inc.php postfix_filter_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/postfix_server_plugin.inc.php postfix_server_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/shelluser_base_plugin.inc.php shelluser_base_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/shelluser_jailkit_plugin.inc.php shelluser_jailkit_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/software_update_plugin.inc.php software_update_plugin.inc.php
ln -s -f /usr/local/ispconfig/server/plugins-available/webserver_plugin.inc.php webserver_plugin.inc.php

Verify with ls -l /usr/local/ispconfig/server/plugins-enabled that all your files are symbolic links.