Website Development, Native Apps (Drupal, Flex, Sass, React, Git, Ubuntu)

How to stop a specific block from being cached in Drupal 8

If you have a block in Drupal 8 that needs to update its contents every time there is a page load then use the hook and code below.

On a Drupal 8 website we developed, it needed to swap out different menus depending on the page that was being requested. We found that Drupal was caching the block twig logic and the only way we could get the menus to swap was keep clearing the cache. To stop this from happening we added ['max-age'] = 0 to the right part of the block render array and all the caching on the block type stopped.

Read more

Exiting a SSH terminal session once if the terminal is frozen

If you have an SSH terminal session open and you can't get the host computer to talk to you don't close the terminal. Exiting an SSH terminal session once it is frozen is really easy just type the command in below and restart the SSH session

Press enter in the terminal and then "~ and ."
Read more

Can't add Online accounts in ubuntu 16.04

In ubuntu 16.04 to add an online account like a Nextcloud instance got to  settings -> online accounts, If you click the add button and it does will not respond then install gnome-control-center gnome-online-accounts packages via the command line. This allows you to bypass the unity online accounts created by ubuntu  and use the gnome version. Below is the commands you need to open gnome online accounts.

$: gnome-control-center online-accounts
Read more

Accessing a block types content programatically

For anyone who is looking to access Block Fields programmatically that were created in block content in Drupal 8, this function will achieve that and will also allow you to access the files URL created in the "block content" image field if it exists. This uses Drupals new namespacing so it should work into the future with Drupal 9

I created a block type in Drupal 8's UI (structure/block/block-content/types ) and added the fields. To access block type in hook_preprocessor_html programmatically you can use the following function

Read more

Make vim default editor for git and ubuntu

To make vim the default editor for Git or your entire operating system. Firslty make sure that vim is installed and then you can chose one of the options below.


If you want to change Git default editor only use the following

$~ git config --global core.editor "vim"

If you want to change the default editor across the whole installation use this command

$~ sudo update-alternatives --config editor
Read more

How to set-up Compass on Ubuntu 14.04 for Omega 4 Development

I had some issues installing Compass on Ubuntu 14.04 this is what I did and the errors I came up against that gave me a large headache. I hope others can benefit from what I learnt. This assumes that you have already created a sub-theme in Omega4. I installed the following packages initially:

sudo apt-get update sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties 
sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev 

Download the Ruby Version Manager (RVM) so you can add any version you want

Read more

Learn to use vim and forget the plugins

The more and more I use vim the quicker my productivity becomes this has allowed me streamlined my development tool chain. One of the issues over the years I kept finding myself doing is extending vims functionality to make it work like an IDE and more mouse friendly. I happen to find these videos on how to use vim from Derek

To my amazement I found that I had missed the whole point of vim. Using buffers instead of tabs and learning how to navigate and edit without using the arrow keys and a mouse has really shown me the power off vim.

Read more

regex patterns for php

Regex can be so difficult but because of its ability to be so flexible it becomes necessary to use when searching a string that could have multiple variants. PHP uses the PCRE format so this could be used in other formats. Below are patterns I constantly use,


Searching for a characters with tags in a string

// String to be searched
1111<thumbnail code='1150400' />2222 

// Regex pattern
/<thumbnail code='.+?' \/>/

// Response
<thumbnail code='1150400' /> 

Searching for the code in a string

// String to be searched
1111<thumbnail code='1150400' />2222 

// Regex pattern () is what you will search for
/<thumbnail code='(.+?)' \/>/ 

// Response
Read more

linux grep commands we need to remember

Grep is a powerful tool but remembering the commands at times does affect your ability to be productive because you don't use it all the time and to recall them can be a headache. Below are important ones I uses at times


Searching a document for a word

~$ grep <searchterm> or <"search term">  <path/filename>
Read more

Apache2 commands on ubuntu

Apache2 has changed the way you can deploy your websites under /etc/apache2/sites-available/ the hosted directive file names need to end in .conf eg, Below are some commands need to run Apache2 web server from the command-line


To enable a website on Ubuntu.

~$ a2ensite <sitename.conf> //Creates a symlink to sites-enabled

To disable a website on Ubuntu.

~$ a2dissite <sitename.conf> //Removes the symlink to sites-enabled
Read more