George V. Reilly

HTML5 tables require tr inside thead

When I learned HTML tables back in the 90s, at some point I discovered the <thead> element for grouping the <th> column headers. What I missed was there should be a <tr> element between the two. In other words, a well-formed HTML table with a header looks like this:

<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Value</th>
            <th>Date</th>
        </tr>
 
continue.

Review: The Italian Job

Title: The Italian Job
Director: Peter Collinson
Rating: ★ ★ ★ ★
Released: 1969
Keywords: heist, comedy, cars
Country: UK
Watched: 17 Febuary, 2017

The Italian Job movie is worth your time. One of the quin­tes­sen­tial movies of the Swinging Sixties, its British sen­si­bil­i­ty wears well, almost 50 years on. The humour still works. And it’s probably the best ad­ver­tise­ment that the Mini ever had.

Charlie Croker (Michael Caine) has inherited a plan to rip off $4 million in gold bullion from Fiat in Turin. He and the lads are going to help the balance of payments by bringing the loot back from the Common Market. (They’re proto-Eu­roskep­tics.) And they’re going to do it by causing the mother continue.

Review: Kill Me Three Times

Title: Kill Me Three Times
Director: Kriv Stenders
Rating: ★ ★ ★
Released: 2014
Keywords: black comedy thriller
Country: Australia
Watched: 10 February, 2017

A jealous husband engages a private detective-cum-killer for hire (Simon Pegg) to follow his wife. Upon proof of her infidelity, he orders a hit, which triggers a comedy of errors and double crosses, which ultimately leaves most of the cast dead at each other’s hands.

There’s not much to like about this Australian noirish comedy. It’s bloody but not that funny. The characters are thinly drawn and unengaging. They’re a far cry from Tarantino’s gonzo mo­tor­mouths or the Coen Brother’s quirky killers.

Jenkins #6: Miscellenea

[Pre­vi­ous­ly published at the now defunct MetaBrite Dev Blog.]

A collection of mis­cel­la­neous tips on using Pipelines in Jenkins 2.0.

#6 in a series on Jenkins Pipelines

En­vi­ron­ment Variables

Use the withEnv step to set en­vi­ron­ment variables. Don’t manipulate the env global variable.

The confusing example that you see in the documents, PATH+WHATEVER=/something, simply means to prepend /something to $PATH. The +WHATEVER has no other effect.

Cre­den­tials

The withEnv step should not be used to introduce secrets into the build en­vi­ron­ment. Use the with­Cre­den­tials plugin instead.

withCredentials([
    [$class: 'StringBinding', credentialsId: 'GPG_SECRET', variable: 'GPG_SECRET'],
    [$class: 'AmazonWebServicesCredentialsBinding',
     credentialsId: '0defaced-cafe-f00d-badd-0000000ff1ce',
     accessKeyVariable: 'AWS_ACCESS_KEY_ID',
     secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
]) 
continue.

Review: I Shall Wear Midnight

Title: I Shall Wear Midnight
Author: Terry Pratchett
Rating: ★ ★ ★ ★
Publisher: Harper
Copyright: 2010
Pages: 355
Keywords: humor, fantasy
Reading period: 3–5 February, 2017

Tiffany Aching is now the overworked and overly re­spon­si­ble Witch of the Chalk. People everywhere are fearing and dis­trust­ing witches more. When her patient, the ailing Baron dies, she is blamed. Other troubles multiply. Eventually she realizes that the Cunning Man, a long-dead witchfind­er, is seeping poison into people’s hearts. Aided by the trou­ble­mak­ing Nac Mac Feegle, she defeats him.

Rec­om­mend­ed.

I Shall Wear Midnight follows The Wee Free Men, A Hat Full of Sky, and Win­ter­smith.

Jenkins #5: Groovy

[Pre­vi­ous­ly published at the now defunct MetaBrite Dev Blog.]

Jenkins Pipelines are written in a Groovy DSL. This is a good choice but there are surprises.

#5 in a series on Jenkins Pipelines

Groovy as a DSL

Groovy lends itself to writing DSLs (Domain-Specific Languages) with a minimum of syntactic overhead. You can frequently omit the paren­the­ses, commas, and semicolons that litter other languages.

Groovy has in­ter­po­lat­ed GStrings, lists, maps, functions, and closures.

Closures

Closures are anonymous functions where state can be captured at de­c­la­ra­tion time to be executed later. The blocks that follow many Pipeline steps (node, stage, etc) are closures.

Here’s an example of a Closure called ac­cep­tance_in­te­gra­tion_tests, where the re­lease_lev­el parameter is a String which must be either continue.

Old Presentations

I uploaded some pre­sen­ta­tions to Speak­erDeck.com tonight.

Here are various pre­sen­ta­tions of mine at Speak­erDeck.com and SlideShare.net:

Jenkins #4: The sh Step

[Pre­vi­ous­ly published at the now defunct MetaBrite Dev Blog.]

If there isn’t a built-in Pipeline step to accomplish something, you’ll almost certainly use the sh step.

#4 in a series on Jenkins Pipelines

The sh step runs the Bourne shell—/bin/sh, not Bash aka the Bourne-again shell—with the -x (xtrace) and -e (errexit) options.

The xtrace option means that every step in the sh block is echoed to the Jenkins log, after commands have been expanded by the shell. This is useful but you could echo the contents of passwords or secret keys in­ad­ver­tent­ly. Use set +x in your sh block to control this.

The errexit option means that the script will abort continue.

Jenkins #3: GitHub Integration

[Pre­vi­ous­ly published at the now defunct MetaBrite Dev Blog.]

Much of our code is in one large GitHub repository, from which several different ap­pli­ca­tions are built. When changes are pushed to the master branch, we want only the ap­pli­ca­tions in affected di­rec­to­ries to be built. This was not easy to get right with “Pipeline script from SCM” builds.

#3 in a series on Jenkins Pipelines

Con­fig­u­ra­tion

Trump: Media Suppresses Coverage of Terrorist Attacks

Donald Trump is now claiming (WaPo):

Speaking to the U.S. Central Command on Monday, President Trump went off his prepared remarks to make a truly stunning claim: The media was in­ten­tion­al­ly covering up reports of terrorist attacks.

“You’ve seen what happened in Paris, and Nice. All over Europe, it’s happening,” he said to the assembled military leaders. “It’s gotten to a point where it’s not even being reported. And in many cases the very, very dishonest press doesn’t want to report it. They have their reasons, and you understand that.”

More: The Atlantic, Vice.

This is ridiculous on the face of it. With literally billions of cellphone cameras in cir­cu­la­tion and hundreds of millions of continue.

Previous » « Next