Bash: use colored text in script

I often use these handy helperfunction to write colored text in my scripts.

# Bash text-colors
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color

function echoRed() {
  TEXT=$1
  printf "${RED}${TEXT}${NC}\n"
}

function echoGreen() {
  TEXT=$1
  printf "${GREEN}${TEXT}${NC}\n"
}

echoGreen "This text is green"
echoRed "This text is red"
echo "This is regular text"

XPATH: search element by text

When I write selenium/kantu end-to-end test I often need to use xpath to find certain elements.
And while it’s definitely not the fastest, searching elements by the text in it, is easy and fast to use. It’s also more descriptive to an untrained eye.

I often refer to this post on StackOverflow which has it written down quite neatly: https://stackoverflow.com/a/2994336

It basically comes down to this:

Literal match (= must match exactly and completely):

//*[text()='match']
//button[text()='Save']

This matches: elements containing (just) the text ‘match’ and a button with (just) the text ‘Save’

Do you need to strip whitespace from texts in elements before you do the matching, then use this:

//*/text()[normalize-space(.)='match']/parent::*

Partly matching:

If it’s ok to be not so strict, use this more loosely matching:

//*[contains(text(),'match')]

This matches texts like: ‘this match comes up‘ and ‘matches this’

If your text must match with words beginning with the text or lines starting or ending with that text, use this xpath 2.0 expression:

//*[matches(text(),'(^|\W)match($|\W)','i')]

PRO-tip: use the inspector to test your xpath.

open the inspector and search (<C-f> or <Command+F>)

Gulp error: Did you forget to signal async completion?

First of all: do check the Gulp documentation on this: https://gulpjs.com/docs/en/getting-started/async-completion#using-async-await

I had the following gulpfile.js:

# file gulpfile.js
function build() {
    return series(
        clean,
        parallel(
            images,
            tracker,
            fonts
        ),
        clean_busters
    );
}

exports.build = build;

When running gulp build I got the following errors:

$ gulp build
[11:17:33] Using gulpfile ./gulpfile.js
[11:17:46] The following tasks did not complete: build
[11:17:46] Did you forget to signal async completion?

Solution

I fixed it by making the build() function async: async build().
Then my gulpfile.js looked like the following (note the extra parentheses at the end!)

# file gulpfile.js
async function build() {
    return series(
        clean,
        parallel(
            images,
            tracker,
            fonts
        ),
        clean_busters
    )();
}

exports.build = build;

Dataverlies voorkomen in Google Analytics

Wist je dat filters in Google Analytics destructieve features zijn? Dat wil zeggen, als je filter meer filtert dan je zou willen, dan ben je die data kwijt. Dat kun je voorkomen door meerdere views te maken in Google Analytics.

Want je wilt geen data kwijt zijn.

Zorg er daarom voor dat je altijd een view hebt zonder filters. Want filters zijn gekoppeld aan een view. Heb je geen filters op je view, dan wordt netjes _alle_ data bewaard.

Continue reading

Automatisch bestanden verwerken en mailen met Hazel

Als ik een factuur binnenkrijg, wil ik dat deze netjes gearchiveerd wordt in de juiste directory én dat de factuur verstuurd wordt naar het speciale e-mailadres van mijn boekhouding zodat hij daar verwerkt kan worden.

Om dat handmatig te doen ben je niet lang bezig en het is ook niet moeilijk Maar het wordt wél vervelend om het steeds maar weer opnieuw te doen. Steeds weer dezelfde handelingen. Continue reading

>