curl: show header only / http get

If you only want to show the headers of your http response, you may want to use the following switches:

  • -D = dump headers
  • -s = silent mode
  • -o /dev/null = send all output do dev null

The curl request looks like this:

$ curl -s -D - -o /dev/null

The output should looks like this:

HTTP/2 200
last-modified: Tue, 13 Dec 2016 12:08:30 GMT
etag: W/"183836-1481630910000"
server: Apache
x-magnolia-registration: Registered
pragma: no-cache
content-type: application/x-font-otf;charset=UTF-8
content-length: 183836
accept-ranges: bytes
cache-control: public, max-age=8236
expires: Mon, 02 Jan 2017 13:11:32 GMT
date: Mon, 02 Jan 2017 10:54:16 GMT

Magnolia CMS: find references of any assets in all repositories

This Groovy code runs on any Magnolia CMS instance and helps you to find unused assets. It checks if an asset is linked within another repository.

It does not check if you link to an asset by URI. And of course it can not check if the asset is linked from somewhere else in the web.

import info.magnolia.module.dependencies.impl.DefaultDependencies
import info.magnolia.cms.beans.config.ContentRepository
import info.magnolia.cms.core.Content
import info.magnolia.cms.util.ContentUtil
import info.magnolia.cms.util.DumperUtil
import javax.jcr.Node;
session = ctx.getJCRSession("dam")
query = session.getWorkspace().getQueryManager().createQuery("select node.* from [mgnl:asset]", "JCR-SQL2")
// for debugging: start with a small amount if nodes
nodes = query.execute().getNodes()
dependencies = new DefaultDependencies()
// save the output to a file
File file = new File("/tmp/unusedAssets.txt")
def i = 0
def found = false
nodes.each { Node node ->
 for (workspace in ContentRepository.getAllRepositoryNames()) {
 // this is an optional whitelist of repositories
 if(workspace.startsWith("offer") || workspace.startsWith("product") || workspace.startsWith("website") || workspace.startsWith("rm-") || workspace.startsWith("category") || workspace.startsWith("resources") || workspace.startsWith("data")) {
 if(dependencies.getReferencesTo(node, workspace).isEmpty()) {
 found = true
 // sleep every 20 nodes, otherwise the instance may be locked
 if (i % 20 == 0) {
 // write node names to the file for later investigation
 if (found) {
 file << node.getPath()+"\r\n"
 found = false

JIRA: Search Filter to find issues updates in the last 7 days

The query language in JIRA is able to use relative dates; using the issue properties like „updates“, „created“ etc. minus a numer of days.

project = X AND resolution = Unresolved and updated > -5d ORDER BY priority DESC, updated DESC

The notation „-5d“ is the shorthand for minus 5 days.

Docker auf Kimsufi Server (CentOS 7.1)

Docker Installation per yum:

yum install docker

Bei dem Setup habe ich eine Partition für Docker Images erstellt und unter „/data“ eingehangen. Hierfür muss das Default-Installationverzeichnis von Docker angepasst werden:

vi /etc/sysconfig/docker

Für CentOS lautet die Zeile zum Anpassen des Verzeichnisses:

other_args="-g /data/docker"

Anschließend wird der Docker Daemon neu (bzw erstmals) gestartet:

# systemctl stop docker.service -> oder alternativ mit "service docker stop"
# systemctl start docker.service -> oder alternativ mit "service docker start"

Die Installation kann mit dem Kommando

docker run hello-world

geprüft werden, und mit „docker images“ werden alle installierten Docker Images aufgelistet.

Um die Tests wieder wegzuräumen und die Docker Umgebung wieder in Ausgangslage zurückzusetzen, sind folgende Kommandos hilfreich:

Delete all containers

docker rm $(docker ps -a -q)

Delete all images

docker rmi $(docker images -q)

Web Frontend Development by Google

Da kann man sich gut mal eine Scheibe von abschneiden:

  1. Material Design Lite:
    • Material Design Lite lets you add a Material Design look and feel to your websites. It doesn’t rely on any JavaScript frameworks and aims to optimize for cross-device use, gracefully degrade in older browsers, and offer an experience that is immediately accessible.
    • Material Design Lite (MDL) is a library of components for web developers based on Google’s Material Design Philosophy: „A visual language for our users that synthesizes the classic principles of good design with the innovation and possibility of technology and science.“
  2. Web Starter Kit:
  3. Web Fundamentals

Düsseldorf „Open Playground“ erfolgreich beendet

Düsseldorf Open Playground by Stöer
Düsseldorf Open Playground by Stöer

Neues von unserem #IoT-Projekt mit #Magnolia und Android:

„Der Open Playground hat gezeigt, dass von den durchschnittlich täglich 250.000 Bahnhofsbesuchern rund 40 Prozent Bluetooth aktiviert haben. Philips, Loreal, die Agentur, die Sparkassen-Finanzportal GmbH und ein Softgetränkehersteller nutzten den Open Playground, um iBeacon Kampagnen in ihrer Zielgruppe zu testen.“

Tachty erhält den Ritterschlag zur Agentur 😉
Danke an Martin und Martin, es hat Spaß gemacht!

Düsseldorf „Open Playground“ erfolgreich beendet weiterlesen

Review: Magnolia Conference 2015 / Basel

Magnolia Conference 2015 is over – but you can relive the event with our videos and slides!

For videos, keep an eye on this playlist – you may find a talk with me speaking about the internet of things 😉

For slides, search for mconf15 on SlideShare: