pixel
Seite wählen

NETWAYS Blog

stackconf wrap up – DAY 3

Day 3 was stackconfs last day, and my first day at the conference.

 

Datacenter on fire

Works on my machine - OPs problem now

Starting off with a meme about burning hardware!

Remember that story about the fire in the OVH Strasbourg Data Center from earlier this year? Kris Buytaert was one of the Engineers on call that night and in his talk he spoke about what it was like to be in the team that was there while the outage happened. He explains how they mitigated the damages and how they recovered from the incident. But he didn’t just talk about this specific incident, but also gave an insight on how to make your infrastructure secure, good business continuity plans and building cloud agnostic stacks that survive disasters.

In this context Christians burned PC also came up again – how does burning hardware come up in every conference?

The burt out remains of Christians PC

The burt out remains of Christians PC

 

The next talk was „Kubernetes Native Continuous Deployment with FluxCD, Flagger, and Linkerd“. Leonid Belkind and Or Elimelech from StackPulse decided to share their way of managing a Kubernetes native CD pipeline with the toolchain you can see in the title. If you feel like you would like some inspiration for building your own, then this talk is for you. They explain the pros and cons – the possibilities and limitations of each tool in their setup and how it all clicks together.

Sharing Open Source Spirit

Marius watching Feus talk in the office

Marius watching the stackconf in the office

The last talk before our coffee break has been my own: Contributing to Open Source with the example of Icinga. The main point of my talk was to invite everyone out there to help out the open source projects that spark your interest or you have been using for years! I showed you around in our repositories, on our website and forum. As contributing is a lot easier than one might think, my main goal is to take away some of the fear people in the community might have!

The coffee break itself was fun as always, with Christian and Bernd just chatting along, getting increasingly confused by the tabletop-games talk in the chat.

 

Right after we hopped into the talk by Michael Coté: Platform as a Product. He talked about how OPs can change the way they work to make life easier for everyone involved in devops and have everyones needs met. He gives some great ideas about how to innovate providing services and transforming away from a service delivery mindset to a platform-as-a-product approach.

Behind the curtains

The stackconf team, ready to snap some pics!

The stackconf team, ready to snap some pics!

On Twitter in the meantime, you can have some insights as to what is going on behind the screnes (or stream, rather).

Julien Pivotto gave us an extensive status update on Prometheus and what there is planned in 2021 and beyond. If you are using Prometheus or considering it, this might be the talk for you! A very in depth explanation on what it has to offer and what has changed in the recent past and a few tips and tricks on how to implement it properly!

Panel discussions

panel discussion screenshot

The hosts were joined by devops experts

I didn’t really sit in with Christian and Bernd for very long in the lunch break – they started off by chatting about snacks and I had to get some myself. Sadly the online conference doesn’t provide the usual snack buffet that you have in person…

When I rejoined the fun, Bernd and Christian were joined by a whole bunch of people for a panel discussion: there were Frank Karlitschek from Nextcloud GmbH, Kris Buytaert from Inuits.eu, Patrick Debois from Snyk, Rosemary Wang from HashiCorp and Serhat Can from Atlassian. A lot of well known organisations and people gathered to discuss all sorts of topics, from „What do you prefer: online vs in person conferences“ over „How do we deal with the fact that former decentralised components have an outage“ to „How can Open Source survive and be founded if traditional business models?“ and „How to find the right balance between complexity and simplicity“.

Learning by doing

live coding

Adam coding live in his talk!

Adam Gordon Bell from Earthly talked about Learning by Pulling Things Apart – and in this case how to pull a container apart to understand how it works. A really nice intro into how the mechanics behind docker work and having a look from bottom up. A live coding session helped understand how to build up a container, which he also detailed in a blogpost that was shared in the chat.

Alberto Marti from OpenNebula spoke about GAIA-X and in his talk he analysed the benefits and challenges associated with Edge Computing, introduced the “True Hybrid Cloud” concept, and explored how this new EU-funded Edge Computing platform contributes to consolidate Europe’s digital sovereignty.

After another short coffee break Anjana Fernando from WSO2 Inc. picked up again with his talk about Microservices Observability with Programming Language: Ballerina. This was a topic that I found very interesting, as I haven’t even heard of Ballerina before. This talk was again centered around an extensive live coding / live demo session which we were walked through nicely.

Big Data and Machine Learning…

… are best when combined. The Weaviate Vector Search Engine aims to do exactly that – we were introduced to the inner workings of Weaviate by Laura Ham from SeMI Technologies with the example of finding the right wine for your seafood dish. Later in the talk we were shown how to actually work with the tool and received some super interesting explanation about how Weaviate connects data purely by proximity, so that it finds fitting results without the search term appearing anywhere in the result datapoint.

After a nice outro by Christian and Bernd we were left with a bit of an empty feeling, but looking forward to the next stackconf – hopefully all together with seeing each other and snacks in Berlin next year! Save the date for the next, stackconf, May 17 & 18, 2022 in Berlin.

Feu Mourek
Feu Mourek
Developer Advocate

Feu verbrachte seine Kindheit im schönen Steigerwald, bevor es sich aufmachte die Welt zu Erkunden. Seit September 2016 unterstützt es Icinga zunächst als Developer und seit 2020 als Developer Advocate, und NETWAYS als Git und GitLab Trainer. Seine Freizeit verbringt es hauptsächlich damit Video-, und Pen and Paper Rollenspiele zu spielen, sich Häuser zu designen (die es sich nie leisten können wird) oder ganz lässig mit seinem Cabrio durch die Gegend zu düsen.

stackconf online – Recap of Day 03

The final day of stackconf online has now come to a close. It has been a wonderful three days full of interesting talks, fun commentary and lots of learning!

Before I dive into the events of day 03, I want to shed some light on the evening event of day 02, which was all about socialising over long distances via the medium of video games:

For the evening event Christian and Bernd streamed Mario Kart 8 on the Nintendo Switch with an open party, so everyone could join in. We had a bunch of fun races and chats. Different people who were at the location took turns playing. 

Wonderful Morning at Day 03

Starting into day 03 with three cups of coffee, as is customary after the night of the evening event, we got some useful tips about integrating security into DevOps. Jose Ortega talked about integrating security into iteration and pipeline application development with containers and how to secure development environments on top of general best practices.

Ignat Korchagin followed up with his talk “Speeding up Linux disk encryption”. He started off with the basics on encryption, explaining the different kinds and their pros and cons and built up from there explaining more in depth how one should secure ones’ data with LUKS/dm-encrypt.

Next up was Pooja Purswani, with her talk “WebThings: Let’s Make Your Things Smarter“. Contrary to what the title would lead you to believe, she pays special attention to the privacy risks in the web and smart devices. Pooja offers a way out with the current decentralised IoT project from Mozilla which focuses on improving interoperability, privacy and security through standardization.

Containers, Accessibility and Bare Metal Automation

After a short and entertaining break about electric scooters and how docker changed the world, Michel Schildmeijer took over the wheel with his talk “Replace your Docker based Containers with Cri-o Kata Containers for better security”. He gives us insights into the technology of kata containers and how they enable you to have all of the advantages of docker containers, with the added benefits of a more secure environment.

After the lunch break, the ignite talks provided a nice lightweight way back into the conference with their short and informative nature.
The first one “Opensource in Advanced Research Computing, How Canada did it !” by Mohamed Elsakhawy gave us an insight into how Canada’s Advanced Research Computing organizations deal with open source software.
Followed by my talk titled “Flying Blind – Accessibility in our Tools” where I tried to raise some awareness for visually impaired individuals and how they interact with the web.

 

 

The first full length talk after the break was submitted by Rain Leander. The title “Leveraging Procedural Knowledge: From Riding a Bike to Bare Metal Automation” already gives a good idea over what the talk was about: The rate at which people in IT have to deal with new tools and ideas is absolutely insane. The viewers learnt about how to engage with new technologies in an easier manner, by looking at what kind of knowledge you take over from other technologies.

The longer break here was again filled with interesting discourse about a diverse range of topics like horses, twitter voice posts and eco friendliness that were discussed with the audience via chat.

Keycloak and Managed Kubernetes made it round

“Securing Infrastructure with Keycloak” by Rahul Bajaj was all about authentication and authorisation and identity preservation. Rahul explained the different bits and pieces of Single Sign On technologies and the different layers involved. He also demonstrated how he implemented the stack in the Foreman project.

Joerg Schad presented “Challenges in Building Multi-Cloud-Provider Platform with Managed Kubernetes”. A lot of cloud services emerged over time, and building your service cloud-agnostic has grown increasingly difficult. Today, most cloud providers support Kubernetes based platforms. The talk tackled some of the issues you could encounter and how to avoid them.

All in all, I would say that the stackconf online was a really nice conference and managed to capture the spirit of a NETWAYS event rather well, despite there not being a physical location. If you haven’t been able to attend the conference live yourself, you can check out the recordings on YouTube. They should be uploaded soon!

Feu Mourek
Feu Mourek
Developer Advocate

Feu verbrachte seine Kindheit im schönen Steigerwald, bevor es sich aufmachte die Welt zu Erkunden. Seit September 2016 unterstützt es Icinga zunächst als Developer und seit 2020 als Developer Advocate, und NETWAYS als Git und GitLab Trainer. Seine Freizeit verbringt es hauptsächlich damit Video-, und Pen and Paper Rollenspiele zu spielen, sich Häuser zu designen (die es sich nie leisten können wird) oder ganz lässig mit seinem Cabrio durch die Gegend zu düsen.

Introduction to SVG: The Basics

Lately I’ve been spending a some time building SVGs.
When I told my colleagues about what I was doing they asked me to write a short guide about what exactly that is and what you can do with it.
Since I got those questions, i thought that might be interesting for others out there, so here goes nothing:

First of all: what is SVG?

Just like JPEG or PNG, SVG is an image format, which lets us display images or graphics on the web.
SVG stands for ‚Scalable Vector Graphics‘ – You might have heard about vectors in a different context already, like maths class or physics maybe?
The concept is the same: there is a direction and a force which helps to describe a path.
This means, that those graphics do not consist of fixed pixel values, but instead they’re a set of directions for whoever renders it (usually the user agent / browser) to follow.

SVG is written in a format that resembles XML, which means you have your image in a human readable plaintext file!

Why does that make it special?

The fact, that the graphics are made up with vectors comes with a bunch of useful qualities:

  • Scalability: It doesn’t matter, if you make the image 30x30px or 3000x3000px, it will stay sharp
  • Responsiveness: Because of its‘ scalability you can have it take up whatever space you need it to
  • Programmable: Since your image is basically a text file, you can modify it programmatically as well, which gives it a flexibility unmatched by other common options.
  • Performance: Since we’re not sending out a binary blob of pixels but a text file, there is next to no loading time for the images.

The most common use cases are logos, icons and icon fonts, animations and diagrams.

What does it look like?

This is a simple svg, which we will be building together over the course of this blogpost:

First we define a simple 20×20 „coordinate system“, where 0,0 is in the top left corner.
In the viewBox we define what part of the SVG we will see when it is rendered. Positive x values move to the right and positive y values move downwards.
<svg viewBox="0 0 20 20"></svg> For a better understanding of the slightly mind-fucky topic of the viewBox property, check this out.

 

To start of with we want to draw the head:
For that we just use a <rect> element to draw a rectangle that fills the entire space.
<rect class="body" width="20" height="20"></rect>

 

The eyes consist of two <circle> elements that we position with cx and cy and give them a radius r of 1 unit.
<circle class="eye" cx="5" cy="15" r="1"></circle>
<circle class="eye" cx="15" cy="15" r="1"></circle>

 

When you put everything together the code for it looks something like this:

<svg viewBox="0 0 20 20">
  <rect class="body" width="20" height="20"></rect>
  <circle class="eye" cx="5" cy="15" r="1"></circle>
  <circle class="eye" cx="15" cy="15" r="1"></circle>
</svg>

So far we’d only have a black box, but as you might have noticed, I also added the class attribute into the elements.
This is for styling the SVG via CSS.
It is also possible to style the elements within their tags, but using CSS is usually preferred, since it makes it possible to style images with user themes as well!
This is the CSS:

.eye {
fill: #444;
}

.body {
stroke-width: 2;
stroke: #444;
fill: #f15a22;
}

 

The drawn lines can be edited with stroke  and if the fill attribute changes the colour that fills up the shape:

You can find the pen here.

Drawing our own images

Combining shapes is all nice and cool, but there are a lot more you can do with SVGs – for example create your own shapes.
We can do this with the path element. For it to know what to draw it needs the d attribute in which we can describe the path of the element.

<path d="M1,2 l4,4 h10 l4,-4 v17 h-18 Z"></path>

 

The d attribute has a syntax consisting of a few letters and a lot of numbers, that can look quite scary and unreadable at first, but when we break it down, it should look a lot clearer:
The letters are the commands and the numbers are their passing values.

 

M is the first command used. It’s the move command – so what it does is move the cursor to the position indicated by the numbers and is the starting point for our path.
M1,2 means it starts one unit to the right and two down.

 

The letters for the commands can either be uppercase to indicate absolute values or lowercase to indicate values that are relative to the last point we drew.
While m4,0 means „Move the cursor 4 units to the right“, M4,0 means move it to the position 4,0.

Basic commands for drawing lines

The next commands we want to look at describe straight lines:
L: any direction
H: horizontal
V: vertical
Z: last element for closing path

 

<path d="M1,2 L5,6 H15 L19,2 V19 H1 Z"></path>
We’re starting at M1,2.
First line is to position 5,6, so 4 to the right and 4 down with L5,6.
Then a horizontal line to H15.
Another line that goes up and to the right with L19,2.
Down to y value 19 with V19.
All the way left to x position 1 with H1
Finally, we close the path with the Z command.

 

It’s entirely up to you if you want to draw with relative or absolute values, in a 20×20 grid those two would draw the same image:

<path d="M1,2 l4,4 h10 l4,-4 v17 h-18 Z"></path>
<path d="M1,2 L5,6 H15 L19,2 V19 H1 Z"></path>

Adding the path together with the circles from our first head and applying the CSS again the image looks like this:

You can find the pen here.

Getting those round corners

The little fox looks a little square still, so we want to edit it to give it some round cheeks.

For this we use the q command, which stands for ‚quadratic curve‘.

The q command requires two points, the one around which the curve should be and the point to which the line will go.

We draw the ears like we have before but instead of going down to the 19,19 corner, we stop 2 units further up.

From the point 19,17 we use the command Q19,19 17,19.
This indicates, that we want to wrap around the 19,19 and end at the 17,19 point.

The d value for this fox looks like this:

d="M1,2 L5,6 H15 L19,2 V17 Q19,19 17,19 H3 Q1,19 1,17 Z"

You can find the pen here.

 

Next in the series is going to be a bit more in depth about the more advanced commands and we will extend on the foxes head to make it look like this:
So stay tuned!

If you thought this was fun, maybe you want join our development team, to learn more about the SVGs and the like?

Feu Mourek
Feu Mourek
Developer Advocate

Feu verbrachte seine Kindheit im schönen Steigerwald, bevor es sich aufmachte die Welt zu Erkunden. Seit September 2016 unterstützt es Icinga zunächst als Developer und seit 2020 als Developer Advocate, und NETWAYS als Git und GitLab Trainer. Seine Freizeit verbringt es hauptsächlich damit Video-, und Pen and Paper Rollenspiele zu spielen, sich Häuser zu designen (die es sich nie leisten können wird) oder ganz lässig mit seinem Cabrio durch die Gegend zu düsen.

Flying blind – accessibility in the world wide web

Do you know how many visually impaired people there are out there?
I can tell you: There are roughly 188.5 million people with mild vision impairment, 1043 million have moderate to severe vision impairment, and 36 million people are blind (According to the world health organisation in 2018). When it comes to colour blindness there are approximately 300 million people affected – that’s almost as many people as the entire population of the USA! (According to the Colour Blind Awareness Community)

That’s a lot, isn’t it? And a lot of those people also use the web. Not everyone in the same way as most do though.

Have you ever used a screen reader? Or heard of the term at all? A screen reader is a tool used to have the content of your screen read out for you. They are usually used by people who have issues reading what’s presented – either because they cannot distinguish between what’s written and the background because of bad contrasts, because fonts that are too small or just because they can not read or see at all.
For anyone who is interested how it works there is a lot of material on youtube, like this video by the SLCC Universal Access channel. If you have the time you should also try it out yourself, there are a lot of free tools out in the www.

In order to make this all possible there are guidelines provided by the w3, which cover:

  • Web Content Accessibility Guidelines (WCAG) – how to make web content accessible
  • Authoring Tool Accessibility Guidelines (ATAG) – make authoring tools accessible
  • User Agent Accessibility Guidelines (UAAG) – make user agents accessible
  • Accessible Rich Internet Applications Suite (ARIA) – make web content and web applications accessible

For all of the (web) developers reading this, those are definitely worth a read! Sticking to those standards makes the web more accessible for everyone, and that’s what everyone should strive for, right?

For people who have difficulties with contrasts, there are standards set by the w3 and also high-contrast ‚themes‘ available for some tools.

People affected by some form of colour vision deficiency there are colour blind variations in some tools – often times they are just being overlooked though. I have some pictures for you, that aim to visualise the most common kinds of colour vision:

colours with different simulated vision impairments

I used ‚Color Oracle‘ for the simulated colours.

There is also a more detailed blogpost on icinga.com about our new ‚colour blind‘ theme in Icinga Web 2.

Feu Mourek
Feu Mourek
Developer Advocate

Feu verbrachte seine Kindheit im schönen Steigerwald, bevor es sich aufmachte die Welt zu Erkunden. Seit September 2016 unterstützt es Icinga zunächst als Developer und seit 2020 als Developer Advocate, und NETWAYS als Git und GitLab Trainer. Seine Freizeit verbringt es hauptsächlich damit Video-, und Pen and Paper Rollenspiele zu spielen, sich Häuser zu designen (die es sich nie leisten können wird) oder ganz lässig mit seinem Cabrio durch die Gegend zu düsen.

Digging up hidden information for a scavenge hunt?

Since today is Ascension Day – which is a public holiday here in Germany – I figured, why not write a post that is also relevant to our readers who have the day off?

So what could be relevant and fun?
Most of the people here who read this blog probably work in tech. And a trait, that I found that a lot of people working in tech have, is enjoying solving puzzles – be it on the computer or in the outside world. I got introduced into something that appeals to me in exactly that way: Geocaching – Mystery caches (yes, yes, I know, geocaching is sooooo 2015 – but solving puzzles is always going to be cool!)

Map of Nuremberg with about 200 caches marked on it

Map of Nuremberg with caches marked on it – each icon is a hidden treasure

A little explanation what that even is (stolen from Wikipedia):
Geocaching is an outdoor recreational activity, in which participants use a GPS receiver or mobile device and other navigational techniques to hide and seek containers, called „geocaches“ or „caches“, at specific locations marked by coordinates all over the world.
Mystery/puzzle caches require one to discover information or solve a puzzle to find the cache. Some mystery caches provide a false set of coordinates with a puzzle that must be solved to determine the final cache location. In other cases, the given location is accurate, but the name of the location or other features are themselves a puzzle leading to the final cache. Alternatively, additional information is necessary to complete the find, such as a padlock combination to access the cache.

 

text: Ugh? Ugh. Ugh? Ugh. Ugh? Ugh. Ugh? Ugh. Ugh? Ugh. Ugh! Ugh! Ugh? Ugh! Ugh. Ugh? Ugh! Ugh! Ugh! Ugh! Ugh! Ugh. Ugh. Ugh? Ugh! Ugh! Ugh! Ugh! Ugh! Ugh! Ugh! Ugh. Ugh. Ugh? Ugh. Ugh. Ugh. Ugh. Ugh! Ugh. Ugh. Ugh? Ugh. Ugh. Ugh. Ugh. Ugh. Ugh. Ugh! Ugh. Ugh! Ugh! Ugh! Ugh! Ugh!

Or about 100 lines that look something like this

So what does that have to do with the tech world?
Well, it’s the way people hide the coordinates.

 

The difficulty of the riddle and the reachability of the box is measured with a scale from 1 – 5 stars. If you’re looking for a real challenge in solving riddles, you want to go for caches with the rating D3 – D5 (D stands for difficulty here).

Sometimes you just get a cryptic cache description with pretty much only „[Coordinates]: 0e9bfe8f349ed4b75d480743d1ab55e6e83c8176“ as a hint

Others just consist of an image. Images can hold a lot of information – if you know where to look.
Steganography – the practice of concealing a file, message, image, or video within another file, message, image, or video – is also often used to hide coordinates from plain view!

I really enjoy geocaching because it’s a nicely balanced pastime. I get to use both my brain and my legs! (A lot of the caches are also wheelchair accessible too though)
Sometimes you even get to see some really cool new places you would have never gone to!

If this sounds like something you could enjoy – just check your area at geocaching.com or the open source alternative opencaching.de where you can select your preferred language and country in the header. Both are using OpenStreetMap for their maps.

My preferred app for caching is c:geo which is an open source app for Android – check out their project on github.

Look for the little  '?' icon  icons for mystery caches

 

Caches I hinted in my post:
1: Password Swordfish
2: Ugh! Ugh?
3: Nano
4: The series: How Do I Solve These #@&%$ Puzzles?!!

Feu Mourek
Feu Mourek
Developer Advocate

Feu verbrachte seine Kindheit im schönen Steigerwald, bevor es sich aufmachte die Welt zu Erkunden. Seit September 2016 unterstützt es Icinga zunächst als Developer und seit 2020 als Developer Advocate, und NETWAYS als Git und GitLab Trainer. Seine Freizeit verbringt es hauptsächlich damit Video-, und Pen and Paper Rollenspiele zu spielen, sich Häuser zu designen (die es sich nie leisten können wird) oder ganz lässig mit seinem Cabrio durch die Gegend zu düsen.