Art Angels by Grimes

This is the album that made me want to start trying to write about my favourite albums – both old and new.

Grimes is an artist in the truest sense of the word. She reminds me of people like David Bowie, Peter Gabriel and Jack White – she uses whatever instruments or sounds fit the song she happens to be writing.

She’s not tied down by any pre-defined musical conventions either: she makes great music, plain and simple.

Complete creative control

Grimes, alias of Canadian-born Claire Boucher, produces all of her own music. After watching a recent interview with her it’s obvious that her passion for music as a whole – as well as her own – runs deep.

Her previous album, ‘Visions’, was produced – solely by herself – on a minimal budget in Garage Band. ‘Art Angels’ feels like it has stemmed out of that creative freedom and control, learned from the making of ‘Visions’, and taken one step further.

She holds the reigns tightly on her own stuff – anyone who wants to meddle can f**k off.

Eclectic and Focussed

Grimes’ music probably isn’t like anything you’d have heard before.

Each song on this album is unique. In one moment she’s punching out some of the best foot-stomping, head nodding pop beats you can imagine – see the song ‘Flesh Without Blood’, the next she’s literally screaming a chorus between Taiwanese rapper, Aristophanes singing on the aptly-named song, ‘SCREAM’.

Despite the eclectic nature of the album, Art Angels feels completely focussed, and not just being eclectic for the sake of it.

A versatile voice

As mentioned before, the songs on this album are eclectic, and so to is her voice.

Sometimes she’ll be screaming, while at other times she’ll be singing softly accompanied by hand-picked guitar – see the album’s penultimate song ‘Life in the vivid dream’.

You can hear her eclectic range of styles well on my favourite song from the album – Kill V Maim. In this one she’ll jump into screaming the end of a verse, followed by a verse sang cheerleader-style, which then drops into a party-anthem-esque thumping chorus.

God knows she’s good

At the end of it all, Grimes is simply a great artist.

From writing, producing and performing live all of her own original material; to drawing all of her own album artwork; to showing a genuine love – and depth of influences – of a large range of musical styles.

When we look back, in the future, at artists who have had a positive impact on the path that popular music has taken – in both style and production – I strongly believe that Grimes will be up there.

I’ve been neglecting my website for a week or two. Even though most of it is drivel that’s only applicable to me, I think it’s important for us to have our own place on the web – one that isn’t locked in to somebody else’s garden. I.e. Facebook, Twitter etc.

Laravel Blade push and stack

Laravel’s blade view compiler is second to none. I’ve used a couple of different templating engines and blade is by far my favourite.

Including Partials

The way in which we include partials of views within our main views is as follows:
@include(‘partials.my-first-partial’)
It will inject that partial’s content in the specified place.

Defining Sections

Within our views, we define “sections” with the following syntax:

@section(‘section_name’)

    The section’s content within here

@stop

And we can define as many sections as we need for our project.

When the same section is used in multiple places within one compilation

Imagine we have master template file as such:

// layouts.main.blade.php
<!doctype html>

...
@yield(‘partials.form’)
...

@yield(‘custom_scripts’)

Let’s suppose we have the following layout template that extends our main layout one and is including three partials. This example is a form template including its various inputs from separate partials. For my own website I have a different form for each of my post types and so I have the inputs in separate partials for easy reuse.

// partials.form.blade.php
@extends(‘layouts.main’)

<form>@include(‘parials.form-title’)
@include(‘parials.form-content’)
@include(‘parials.form-tags’)</form>

Let’s next suppose that in a couple of those partial input views you need to inject some custom scripting. This is a slightly contrived example, but it will illustrate the point.

// partials.form-content.blade.php
<textarea class="content" name="content"></textarea>

@section(‘custom_scripts’)
// dummy javascript as example
$(‘.content’).doSomething();
@stop
// partials.form-tags.blade.php
<select class="tags" name="tags">
<option value="tagone">Tag One</option>
<option value="tagtwo">Tag Two</option>
<option value="tagthree">Tag Three</option>
</select>

@section(‘custom_scripts’)
$(‘.tags’).doSomethingElse()
@stop

Now, when the form page gets compiled, only the first occurrence of the ‘custom_scripts’ section will be included.

So what if you needed to be able to define this section in chunks across partials?

Introducing Blade’s Push & Stack directives

To give this functionality, Laravel does in fact have two little-known directives called ‘push’ and ‘stack’.

They allow you to ‘stack up’ items across partials with the ‘push’ directive, which can then be echoed out together with the ‘stack’ directive.

Here’s the above form example but with ‘push’ and ‘stack’ used in place of ‘section’ and ‘yield’.

// layouts.main.blade.php
<!doctype html>

...
@yield(‘partials.form’)
...

@stack(‘custom_scripts’)

// partials.form-content.blade.php
<textarea class="content" name="content"></textarea>

@push(‘custom_scripts’)
// dummy javascript as example
$(‘.content’).doSomething();
@endpush
// partials.form-tags.blade.php
<select class="tags" name="tags">
<option value="tagone">Tag One</option>
<option value="tagtwo">Tag Two</option>
<option value="tagthree">Tag Three</option>
</select>

@push(‘custom_scripts’)
$(‘.tags’).doSomethingElse()
@endpush

This will now compile all uses of the @push(‘custom_scripts’) and echo them out as one wherever you call @stack(‘custom_scripts’)

When I was shown this technique by a mate at work, it blew my mind.

Have fun.