Dev Blog
Typical title for developers blog. Contains boring things.

Abstracting Out Things

When we build our application or library, we often use external packages which provide many kinds of features and are often battle tested and popular. Especially there are a lot of open source libraries made by independent developers. For instance, we can use libraries to perform single sign on authentication, to manage browser history states or to access remote API of other web application. In fact our project might consist of even hundreds of such dependencies.

Ubuntu 18.04

Today is release date of new long term supported Ubuntu. There will be much improvements for people switching from 16.04 version. The new 18.04 is quite similar to shortly supported 17.10. The user interface is much more clean and modern than previous one, thus installing custom theme might not be necessary for those visual purists like me:). Of course when talking about any Linux release, the login screen must be mentioned! The one in new Ubuntu requires us to slide it to see actual credentials inputs. Might be good for some mobile devices, but on laptops with mouse or touchpad it's a bit overkill.

Upgrading from 17.10 went smooth almost till the end on beta version, then some error appeared. However upgrade was successful. The system runs fast even on older laptop, especially after disabling animations. There servers will need to be upgraded to new release too, but that's the whole different story.

To upgrade to stable version use this console command:
sudo do-release-upgrade

And follow instructions. Lot of packages will be downloaded, upgraded and some will be removed. It is recommended to review those. Also all custom apt sources lists will be disabled. Use Y PPA Manager for easier migrations of sources lists.

To install Y PPA Manager add it's repository first, than update and install:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt update
sudo apt install y-ppa-manager

Then choose Advanced and use Re-enable working PPAs after Ubuntu upgrade. This will enable whatever works now. You can try to run it later again when other sources lists get's updated.

Codeception Acceptance: Check if element is visible

There are cases, there User Interface state might depend on various factors. Or in our tests there might be case where button can be toggled or might get activated by remote action.

The first solution one might think of is to conditionally invoke action on element. Depending whether it is visible or not.

Hide tooltips on dropdowns in twitter's bootstrap 3

Tooltip left over dropdown
Tooltip left visible over

When using tooltips on buttons which have dropdown menus, the tooltip might not disappear as we would like to, leaving it visible. This might even block user action. To avoid this issue, tooltip need to be hidden when dropdown is shown. But it turned out that it is not enough, as it might pop up again. Also when dropdown is closed by another click, tooltips still might be left visible.

In summary 

It turned out that tooltip must be hidden on events:

  1. Dropdown shown
  2. Dropdown hidden
  3. Mouse entering dropdown menu