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?!!

Und, was gibts heute zu Mittag?

Kurz vor 10:00 an der Kaffeemaschine, die Leute beginnen langsam ein kleines Hüngerchen zu verspüren und es wird diskutiert was denn heute in den Lunchshop kommt.
… Lunchshop?

Wir hier bei Netways haben ein cooles System entwickelt, das es für uns erleichtert zusammen Essen zu bestellen.
Wir haben nämlich als eher mittelgroßes Unternehmen nicht den Luxus einer Kantine wie so manch andere.
Stattdessen haben wir uns selbst geholfen und ein kleines Tool zusammengebastelt, das ich heute vorstellen möchte:

Der Lunchshop!

Grundsätzlich handelt es sich dabei um ein Webinterface, das helfen soll die Arbeitsabläufe beim Essen bestellen zu automatisiere.
Die “Händler” können einen Laden anbieten, bei dem sie bestellen wollen und die restlichen Mitarbeitenden können sich dann in die Bestellung einklinken.
Das spart Lieferkosten und schont die Umwelt (zumindest ein bisschen mehr als wenn ein Jeder für sich bestellt).
Und wir faulen IT-ler müssen uns nicht irgendwo hin bewegen um an Futter zu kommen!

Ursprünglich entwickelt und administriert von einem unserer ehemaligen Kollegen wird der Shop nun von einem Grüppchen von Freiwilligen weiter geführt.
Ich selbst bin einer der Admins und Händler. Ich versuche ein bis zwei mal die Woche einen Laden aus unserer Liste in den anzubieten, wir haben Pizza, Fitness-Food, Pasta, Asiatisch, Burger, Mexikanisch, Indisch und vieles mehr!

Die Bank!

Alle Geldbewegungen die durch das gemeinsame Bestellen entstehen sind automatisiert und laufen über unser internes Banksystem ab.
Die im System registrierten haben ein eigenes Konto, auf das sie einzahlen, von dem sie auszahlen und mit dem sie (gesetzt sie haben genug guthaben) auch bestellen können.
Das Geld wird wird von allen Bestellern automatisch abgezogen und dem Händler gut geschrieben. Dieser kann dann entweder das Geld auszahlen um damit für die Bestellung zu bezahlen, oder es als Guthaben behalten.

Der Bestellablauf!

Die App zum Anfassen!

Natürlich gibts das ganze Open Source, zum anschauen, forken und selbst verwenden!


DevOpsDays Berlin 2018 Recap

The sixth iteration of DevOpsDays Berlin is almost over and we would like to give you a little recap of what was offered.
This years conference was divided into two parts. The first half of both days focused on the single track talks and the second half was dedicated to Open Spaces and workshops.
We’ll only go over the 8 main talks that where presented on the single track stage, because we could not visit all the Open Spaces and workshops.

Day 1

Peter Chestna – Full Spectrum Engineering – The new Full Stack for 
Developers need to adapt – was the core idea of Peters talk. He explained how the typical software dev of the past has to evolve into a specialist in full spectrum development. Now a developer must become fluent in software testing, deployment, telemetry and even security. We have to adapt both in mind- and skillset in order to improve in our ever changing IT world.
Jessica Ulyate – Platform: How to Product?
The keyword in this talk was: product management (in DevOps).
She described in which ways to structure the communication flow between the developers and the stakeholders to efficiently get to a successful product.
Philip Smyth – Shifting ownership of code quality to developers
In short he talked about how developers should do more QA; and QA should get more into development and how his company basically merged those two departments. He described how this practice improves the workflows and makes working towards a product more efficient and focused.
Subhas Dandapani – DevOps as a Contract
Subhas talked about different areas in infrastructure and how they tried to remodelled everything into contracts. He showed us some approaches his company tried out, how they improved and where they are still struggling.
Ignite talks:

Day 2

Dirk Lehmann – Trust as foundation of DevOps
The one of the most important things when it comes to working together is – trust, according to Dirk Lehmann. In his talk he explained the principles you should strive for when working together in an organisation, be it big or small – in one location or spread over the globe.
Yuwei Ren – Mentorship: From the receiving end
In her talk she elaborated how to improve mentorship – both from the sides of the mentor and the mentee. She took us on her journey from starting university, over several internships to becoming a professional developer. The focus was on what she did, could have done better and what her advice would be for the mentors.
Ken Mugrage – Want to successfully adopt DevOps? Change Everything.
It’s usually not enough to rename a team, you should also think about restructuring the organisation itself. He stressed the different definitions of DevOps and the variety of approaches – in order to make us, the audience, think about how we could improve our systems.
Tiago Pascoal – Don’t make the same mistakes we made in our Devops journey
Tiago gave us brief overview over the past developments in DevOps culture at Microsoft Azure. He highlighted the pros and cons of the approaches Microsoft tried out, including: team structure, balance of alignment and automation, CI/CD, development cycles and many more.
Ignites of the day:

As always, DevOpsDays Berlin was an awesome event with very informative talks and a meet-up of wonderful people with the same mindset.
We hope everyone who was here with us enjoyed it as much as we did and would be happy to see the community again next year.
If you want to be part of this community, feel free to join us in 2019!
For more information on the event visit the DevOpsDays Berlin homepage.
Written in collaboration with Noah Hilverling 🙂

How css-tricks improved my work life

My relationship with CSS is some kind of a love-hate one and I think that is a sentiment a lot of web-devs share with me.
My biggest issue with it is, that it is really counterintuitive and most of the time it feels a bit like solving puzzles to make things align the way you want it to.

and oftentimes it feels a lot like

Properties that mean the same thing being worded inconsistently – I’m looking at you…

vertical-align: middle;
text-align: center;

And there is also some questionable naming with ‘grey’ (#808080) being darker than ‘darkgrey’ (#a9a9a9)…
In general there are too many quirks you need to just know. Unless you work with it every day, you need to google every second line in order to write your stylesheets.
There you can find all sorts of guidelines, help, blogposts with a nice mix of bad-practices and outdated information.
What helped me a lot is the website css-tricks.
(mehr …)

Ausbildung bei Netways im Software-Development

Worum gehts denn heute?

Wie läuft eigentlich so eine Ausbildung bei Netways ab?
Was wird geboten?
Was wird erwartet?
Wäre das vielleicht was für mich?
Auf diese Fragen werde ich versuchen heute eine Antwort zu geben 🙂

Name: Feu Mourek
Ausbildungsberuf: Fachinformatiker für Anwendungsentwicklung
Abteilung: Development
Lehrjahr: 2


Die Hälfte meiner Ausbildung ist schon vorbei, seit anderthalb Jahren bin ich nun hier in der Netways-Family.
Meinen letzten Bericht über meine Ausbildung hatte ich ziemlich zu Anfang geschrieben, voller Begeisterung und nur einen Monat nachdem ich bei Netways angefangen hatte.
Seitdem hat sich viel getan aber mein Enthusiasmus ist kein bisschen abgeklungen!

Mein Werdegang:

Gestartet habe ich mit einem eher kleinen Wissensschatz: Ich wusste wie man einen Computer bedient, war der deutschen und englischen Sprache mächtig und in der Lage simple Skripts zu schreiben. Das wars aber auch schon.
Meiner Einarbeitungsphase bestand aufgrund meiner eher mangelhaften Vorkenntnisse der IT Welt aus etwa 2 Monate intensiven Coaching meiner neuen und Gott seis gedankt, sehr geduldigen Kollegen.
Man hat mich langsam, Schritt für Schritt, an das Leben als Entwickler herangeführt.
Zuerst durfte ich ein bisschen skripten und zwar einen einfachen kleinen Parser, der nützliche Statistiken aus .po files auslesen sollte basteln.
Diese Statistiken sollte ich dann in eine “schöne” CLI Ausgabe weiterverarbeiten damit wir einen besseren Überblick über den Status unserer Lokalisation in IcingaWeb2 bekommen.
Danach gings an tatsächliche Arbeit mit Web2, das heißt: Bugs fixen, Features entwickeln, Module basteln und alles was dazugehört.
Damit wurde ich dann endgültig in die große weite Welt (oder auch die Untiefen) der IcingaWeb2 Codebase geworfen.

Ich hatte noch einige weitere kleine Projekte, die sich zum Beispiel mit dem CI Runnen von Gitlab, oAuth, Webforms, den von uns genutzten Frameworks und vielem mehr.
Mein erstes Projekt bei dem ich teil des Teams war, war die komplette Renovation von Icinga Exchange.
Die Wahl von Frameworks und Tools, Reverse Engineering, Code-Qualität und sinnvolle Strukturierung von Grund auf bei größeren Projekten waren hierbei der Fokus.
Inzwischen habe ich durch die flexible und projektorientierte Struktur in der Development Abteilung schon mit den meisten Kollegen zusammen an einem Projekt getüftelt und gelernt sowohl im Team, als auch eigenständig zu arbeiten.
Die Projekte waren bisher immer sehr Abwechslungsreich und es jeder profitiert von dem Wissen der anderen Teammitgliedern.
(Für mich ist es immer ein besonders gutes Gefühl, wenn ich deutlich erfahreneren Kollegen etwas Neues zeigen kann ^-^)
Vor einigen Wochen hat für mich auch die Abteilungs-Rotation begonnen.
Die erste Station war Administration und bald geht es weiter mit Events, Sales, Managed Services und Support.
Eine sehr interessante Sache mal zu sehen, was in den anderen Abteilungen alles so geleistet wird!

Aus reinem Interesse hat sich inzwischen ein relativ solides Netz an Wissen entwickelt.
Die regelmäßigen Gesprächen mit meinen Ausbildungsbeauftragten (Ausbilder und Teamleads) war es mir möglich mitzubestimmen auf welchen Gebieten ich mich spezialisieren will und mich durch Feedback ständig zu verbessern.
Ich blicke auch gerne nach vorne und freue mich darauf noch lange Zeit mit meinen Freunden und Kollegen zusammenzuarbeiten!

Was wird von unseren Azubis erwartet?

Die wichtigsten Eigenschaften die man mitbringen sollte wenn man bei uns in eine Ausbildung starten will wären Folgende:

  • Offenheit
  • Teamfähigkeit
  • Kontaktfreudigkeit
  • Technisches Interesse
  • Wissbegierde

Es uns super wichtig, dass sich die neuen Kollegen gut bei uns einfinden können und zu uns passen,
einfach weil wir viel in sich ständig neu durchmischenden Teams arbeiten.
(Unsere Türschildchen stimmen praktisch nie)
Man bekommt die Chance, sehr sich schon während der Ausbildung um seine eigenen, kleinen Projekte zu kümmern.
Ein gewisses Verantwortungsbewusstsein ist von daher auch nicht schlecht.
Aber keine Sorge, es ist immer jemand da, auf den man mit Problemen zukommen kann, man steht definitiv nie alleine da 🙂
Was dein technisches Wissen angeht: Das wichtigste ist ehrliches Interesse.
Deinem Stand und deinen individuellen Fähigkeiten entsprechend werden dir unsere Ausbilder zu dir passende Aufgaben geben und sich so um dich kümmern, dass dein Potenzial optimal genutzt wird.
Solange du dich für den Job begeistern kannst und die Motivation hast zu lernen kommt der Rest wie von selbst!

Das Umfeld:

Durch den familiären und freundschaftlichen Umgang mit allen Kollegen und den zahlreichen Firmen-Unternehmungen fühlt man sich auch sofort gut aufgehoben.
In einem typischen Netways Jahr kann man mit diesen Events wie diesen (und noch vielen mehr) rechnen:  

Ich persönlich versuche alles mitzunehmen, was irgendwie Platz findet im Terminkalender.
Bisher hatte ich immer super viel Spaß und habe viele neue Freundschaften geschlossen, sowohl innerhalb der Firma und mit Besuchern unserer Veranstaltungen ^-^

(Manch Einem sind es auch ein paar zu viele Events, aber das ist wohl Geschmackssache und der Großteil der Veranstaltungen sind ja optional 😉 )

Ausbildung bei Netways: fordernd, lehrreich, spaßig und eventful.
Bei Interesse bewirb dich hier!

Styling Webforms

Styling webpages? Easy.
I’m guessing a lot of you had to work with CSS at some point in their lives.
Most parts of the web are fairly easy to style,
especially if you know some of the little hacks that you have to use to make a page look pretty.
So you go ahead and style everything the way you want it:
Nice grey background, elements in different shades of blue a bunch of elements in pink for contrast.
You put a nice image as a header for your page and add a sidebar, things that appear and disappear when you hover over them, even some nice animations.
All looking good.
Styling forms? Not so much.
Then you get to the user settings.
You try to apply styles to the checkboxes. Nothing happens.
You try to apply styles to the dropdowns of select elements. Nothing happens.
Need a date selector? Good luck on doing anything to that one!
But why is it so hard to style webforms?
In the end it all comes down to the fact that styling form elements is left up to the browsers.

A select will look different in Chrome than in Safari, Firefox, IE or any other User Agent.
But then again, in a Chrome browser a select will look the same in every web page you look at.

I’m not talking about whether you should or shouldn’t overwrite those defaults.
There are a lot of arguments for and against it, but all I’m going to focus on in this post is the how.

How do you restyle checkboxes?
Especially hacky is how the restyled checkboxes work:
The actual checkbox input is to be hidden:

input[type="checkbox"] {
position: absolute; // take it out of document flow
opacity: 0; // hide it

The new box for the checkbox is then built into the label of the checkbox with the ::before selector.
The tick is then styled with the ::after selector like this:

input[type="checkbox"] + label:before {
// Box for Checkbox

input[type="checkbox"] + label {
// Actual label

input[type="checkbox"]:checked + label:after {
// Tick

That way you can have a completely customised checkbox.
How does it look like all put together?
I had a little project where I spent a week researching how to make a webform pretty with only CSS.
The result was a melange of tips and tricks I found all over the web. (That little checkbox trick that i just explained was one of them)
Check it out below!

See the Pen Formstyles for Blogpost by Feu (@the_Feu) on CodePen.

Azubi-Projektwoche: ein 'voller' Erfolg

Ein neues Experiment aus dem Hause NETWAYS ist in der Woche vom 06.06. – 09.06.2017 angerollt: die Azubi-Projektwoche.
Dafür werden einmal im Jahr für eine Woche alle unsere Azubis eingesammelt und in unser Trainingszentrum, dem Kesselhaus, abgeladen.
Wir hatten nur wenige Vorgaben was genau wir fabrizieren sollten, nur dass wir innerhalb einer Woche, mit einem Budget von 500€ ein kleines unabhängiges Projekt auf die Beine stellen und das dann am Freitag Nachmittag präsentieren sollen.
Unsere 8 Mann starke Truppe, bestehend aus Nicole, Noah, Ufuk, Gabriel, Alexander, Andreas, Lukas und mir, hat am Dienstag zunächst das Kesselhaus bezogen, voller Elan und Motivation. Der erste Punkt auf der Tagesordnung war einen Gruppenleiter zu wählen, was auch recht schnell getan war, so musste Andreas für den Rest der Woche unsere Gruppe managen und drauf achten, dass Alles so läuft wie geplant.
Dann musste noch überlegt werden, was denn nun eigentlich in dieser Woche geschafft werden soll. Komplett ohne Vorgaben ein Thema zu finden ist nicht leicht, vor allem Eines, bei dem sich alle Teammitglieder die gesamte Zeit sinnvoll einbringen können und ihre Fähigkeiten nutzen.

Hier sieht man das Team beim Brainstormen

Diese Idee sollte  alle unsere selbst gestellten Ansprüche vereinigen: technisch sollte es sein, aber auch etwas zu Handwerken. Etwas nützliches, was auch öfters als nur einmal verwendet werden kann. Etwas was zu Netways passt, aber nichts mit IT zu tun hat. Etwas was bei den Kollegen Anklang findet. – Kurz gesagt, irgendwas cooles.
Unsere Überlegung starteten mit ‘Lasst uns ein Holzhaus bauen!’, über einen fahrbaren Eisstand, bis hin zu unserer Finalen Idee: eine fahrbare Bar, die per Knopfdruck Getränke mischen kann.
Nachdem wir uns auf das Thema geeinigt hatten, teilten wir uns in verschiedene Teams auf: Das Entwicklungs-Team kümmerte sich um die Knopfdruck-Mischtechnik, das Produktions-Team um das Zusammenschrauben der Bar selbst, Das Präsentations-Team (was eher Part-time aus Mitgliedern der erstgenannten beiden bestand) kümmerte sich um Foto- und Filmdokumentation und die Abschlusspräsentation für die Firma und das letzte ‘Team’ war die Ein-Mann-Truppe Lukas, der sich um die Getränke und das Cocktail-Kochbuch gekümmert hat.
Und dann ging die eigentliche Arbeit los:

DAY 1:


Die ersten Gehversuche mit der eben gekauften Elektronik

Noah, Alexander und Ufuk haben sich Gedanken gemacht, wie die Mischtechnik aufgebaut werden sollte. Es stellte sich relativ schnell heraus, dass Modellbau-Pumpen am besten geeignet sind Flüssigkeiten zu transportieren und die Getränke zu mischen. Ein Arduino UNO zur Steuerung der Pumpen war der beste Kompromiss aus technischen Möglichkeiten und Kosteneffizienz. Da dieser aber den Pumpen bei weitem nicht genug Strom bieten konnte, sah sich das Team gezwungen eine elektronische Verstärker-Schaltung zu entwerfen. Hier hat sich das Fachwissen aus dem Physik-Unterricht von Noah und aus dem stillen Kämmerlein von Alexander bezahlt gemacht. Nachdem die Planung abgeschlossen war und die Entscheidungen über die Technik gefallen waren, ging es sofort zum Technikgeschäft, wo alle benötigten Teile (von Kabeln über Steckbretter und Netzteile bis hin zu Modelbaupumpen) vorhanden waren. Da, trotz Interesse in dem Bereich, Niemand aus dem Team wirklich viel Erfahrung mit Elektrotechnik und Mikrocontroller (Arduino) hatte, widmete sich die Gruppe den restlichen Tag dem Verstehen und Ausprobieren.
Nicole und ich hatten uns damit auseinandergesetzt, was für ein Design wir anstreben wollen, was wir dafür an Materialien benötigen und wie viel das uns in etwa kosten würde.Danach verbrachten wir einige Zeit mit der millimetergenauen Planung der Bar-Maße, was sich als ein ziemlich schwieriges Unterfangen herausstellte. Wir wollten sowohl ein ansprechendes Design, als auch Stabilität vereinen, was ziemlich schwierig ist, wenn alle Erfahrungen in dem Bereich vom ‘Zuschauen bei Anderen’ stammen. Die Wahl des Holzes war leider auch etwas durch das Budget limitiert, so fiel unsere Entscheidung auf 16mm Spanplatten für die Außenwände und eine Restholz-Küchenplatte für die Arbeitsfläche. Mit etwa 120€ für Holz, Farbe und Kleinkram waren wir mit unserem Kostenvoranschlag trotzdem noch gut im Rahmen. Zu guter letzt sind wir in den nächsten Baumarkt gefahren um uns die benötigten Spanplatten zuschneiden zu lassen, Beratung über lebensmittelechten Lack zu bekommen und alle möglichen benötigten Kleinteile zu besorgen.

Planung und Konzeption

Ufuk und Gabriel entschieden sich die Arbeitsabläufe der darauffolgenden Tage mit Foto- und Filmaufnahmen festzuhalten und einen kurzen Film daraus zusammen zu schneiden. Ufuk bot hierfür seinen Laptop an, da er ein professionelles Videoschnittprogramm (Final Cut Pro X) darauf installiert hat. Gabriel schlug vor, dass er seine Spiegelreflexkamera für die Aufnahmen mitnehmen könnte. Am ersten Tag entstanden leider nur wenige Aufnahmen, da das Equipment dafür noch nicht vor Ort war. Gabriel filmte notdürftig ein paar kurze Clips von den Einkäufen mit seinem Handy.
Andreas wimmelte nur so zwischen den Gruppen hin und her um potentielle Konflikte sofort zu verhindern und schon mal Informationen für die Abschlusspräsentation zu sammeln.
Lukas hat sich am ersten Tag damit beschäftigt zu recherchieren was für Cocktails für unsere Bar denn so wünschenswert wären und sich Gedanken gemacht, wie denn unser Cocktail-Kochbuch so aussehen könnte.

DAY 2:

Durch die Tests und Erfahrungen vom Vortag gestärkt, fing dieser Tag direkt mit Schaltung auf dem Breadboard(Steckbrett) zusammenzustecken und testen an. Leider stieß die Truppe gegen Nachmittag auf das Problem, dass eines der Bauteile (das Darlington Transitor-Array um genau zu sein) sehr warm wurde und teilweise nicht mehr funktionierte. Die Vermutung war, dass die Temperatur um weiten zu hoch waren.Nach einem genauen Blick in die Dokumentation dieses Bauteils fiel auf, dass es nur für maximal 0,5A geeignet war, das Netzteil jedoch 3,5A Spannung lieferte. Nach gründlicher Recherche wurde das Transitor Array durch einzelne High Current Transistoren ersetzt. Ein erneuter Besuch beim Händler stand an und so wurde die Schaltung nocheinmal komplett umgebaut, um den neuen Transitoren gerecht zu werden. Alle folgenden Tests verliefen erfolgreich.

Der orange Lack lässt noch das Holz-Muster durchblicken

Am zweiten Tag hatten wir nun auch alle benötigten Werkzeuge (Akkuschrauber, Stichsäge, Pinsel und Rollen) zur Verfügung und haben uns sofort daran gemacht die Bar zusammen zu schrauben. Dabei haben wir festgestellt, dass es gar nicht so leicht ist wie es immer aussieht eine Schraube gerade in das Holz zu treiben (wir sind trotzdem fest davon Überzeugt, dass auch die Tatsache, dass wir Spanplatten verwendeten Mitschuld an den krummen Schrauben hat). Innerhalb kurzer Zeit stand das Grundgerüst der Bar und wurde in schickem NETWAYS-Orange bemalt. Wir sägten ein rundes Loch für eine Waschwanne (zum Abspülen von Getränken) in die Arbeitsplatte und stellten fest, dass die Beschichtung sich nicht besonders gut abschleifen lässt. Schnell waren ein paar Grifflöcher hinzugekommen um die abgeplatzte Lackierung zu kaschieren.

Immer unterwegs

Ufuk brachte seinen Laptop mit und richtete auf diesem das Filmprojekt ein und Gabriel begann mit den Filmaufnahmen. Als er nach der ersten Stunde die Aufnahmen auf den Laptop überspielen wollte, erlitt die SD-Speicherkarte einen Defekt. Sehr schade, denn somit waren ein paar schöne Aufnahmen vom Zusammenbau der ersten Elemente des Cocktailstandes verloren. Nachdem eine weitere SD-Karte besorgt war ging es weiter. Ufuk begann mit dem Schnitt des Filmes. Er suchte eine passende Schriftart für den Titel heraus und begann mit der Auswahl passender Videoclips. Währenddessen filmte und fotografierte Gabriel die Arbeit der anderen Azubis. Gabriel filmte und fotografierte dann weiter. Mehr als ein schnelles, verschwommenes Handy-Foto gibt es natürlich nicht von dem Mann hinter der Kamera.
Getränke-Team: Lucas hat ein kleines Cocktail Kochbuch zusammengestellt, gedruckt und gebunden, welches am Ende als Inspiration auf der Arbeitsfläche liegen sollte. Aufgrund der relativ geringen Anzahl der Pumpen musste nochmal umdisponiert werden, was die angebotenen Getränke angeht, also einigten sich alle Teams auf eine Umdisponierung auf Longdrinks statt Cocktails.

DAY 3:

Am dritten Tag war dank unseren neuen Transistoren die Pumpensteuerung größtenteils fertig und es fehlte nur noch die Steuerung mittels Knöpfen. Dieser Teil der Arbeit gelang relativ schnell, weshalb sich das Team dann dem Schreiben unseres Programmcodes für den Arduino hingab. Der Arduino sollte später die Pumpen so steuern, dass diese Cocktails und Longdrinks auf den Centiliter genau zusammenmischt werden. Um unseren Programmcode richtig schreiben zu können, musste wir jedoch vorerst messen, wie lange eine Pumpe braucht und einen bestimmte Menge an Flüssigkeit zu transportieren. Am Ende des Tages funktionierte unser System nahezu perfekt und nun musste es nur noch in unsere Bar eingebaut werden und die Mischverhältnisse für die Drinks eingestellt werden.

Die sorgfältig gesteckten Kabel auf dem Breadboard

Wir machten uns an die grobe Fertigstellung der Bar. Dazu mussten sowohl Rollen auf der Unterseite angebracht werden als auch Griffe an den Längs-Enden um die Bar mobil zu machen. Des Weiteren wurden in Absprache mit dem Entwicklungs-Team die Öffnungen für die Elektronik und die Schläuche gebohrt. Die Bohrlöcher mussten nochmal mit Lackfarbe nachgebessert werden, da die Position der Löcher erst mit Ausreifung der Elektronik gesetzt werden konnten. Des Weiteren hatten wir bei den Transportgriffen auf einen anderen Schraubentyp umdisponiert, weshalb unser Teil der Gruppe nochmals den Baumarkt aufsuchen musste. Dort füllten wir den Einkaufswagen auch mit Deko-Artikeln. Die letzten Stunden des Tages verbrachten Nicole und Gabriel mit dem Einsatz der neuen Schrauben und ich schmückte ein Rankgitter, das hinter der Arbeitsfläche angebracht wurde um zu verhindern, dass die Flaschen einen Abflug nach hinten machen.
Ufuk und Gabriel schauten sich gemeinsam die geschnittenen Aufnahmen des Vortags an und begannen damit, die Schnitte bzw. Übergänge zwischen den einzelnen Clips an den Takt des unterliegenden Liedes anzupassen.

DAY 4:

Die Schläuche werden auf gleiche länge gestutzt und zusammen gebunden, damit sie bequem in ein Glas reichen

Da das System größtenteils funktionierte, kümmerten sich das Team nun darum, den Arduino samt Knöpfen, Pumpen und Schaltung in die fertige Bar einzubauen und die Pumpschläuche auf diese zuzuschneiden. Danach folgten einige Probedurchläufe mit Wasser, das Einstellen der Drinks und später einige Durchläufe mit den vorgesehenen Getränken. Hier stießen sie auf das Problem, dass Getränke mit Kohlensäure, durch die Luftbläschen langsamer gepumpt werden als andere, weshalb die Mischverhältnisse ein wenig überarbeitet werden mussten. Nach kurzer Kalibrierung und Testing funktionierte alles einwandfrei und die Technik stand.

Traube-Käse, Olive-Brot und später noch Tomate-Mozzarella

Am letzten Tag wurden unter Zeitdruck noch die letzten Löcher gebohrt, Macken zulackiert und die verbleibenden Dekorationen angebracht, bis dann die Bar selbst vollendet war. Danach fuhr Nicole noch einmal mit Gabriel zum Einkaufen los, diesmal aber nicht in den Baumarkt sondern in diverse Supermärkte, damit wir zur Präsentation auch Häppchen zu den Getränken anbieten konnten.

Wir hatten auch noch sehr viel Spaß mit unserem Label-Drucker und gaben unserer Bar auch noch einen Ikea-Namen

Auch an diesem Tag filmte Gabriel die Arbeitsabläufe der anderen Azubis. Ursprünglich hatten Ufuk und er geplant, das fertige Produkt am Ende des Filmes in Szene zu setzen. Dieser Plan konnte allerdings nicht umgesetzt werden, da bis zur Präsentation zu wenig Zeit blieb und der Cocktailstand erst in der letzten Stunde komplett fertiggestellt wurde. Ufuk kümmerte sich um die Texte für den Abspann und suchte weitere Clips heraus. Anschließend gingen er und Gabriel den Film ein weiteres mal durch. Dabei stellten sie fest, dass viele Schnitte nicht mehr zum Lied passten. Innerhalb von wenigen verbleibenden Minuten musste das gesamte Projekt nochmal an die Musik angepasst werden. Glücklicherweise gelang dies noch rechtzeitig vor Beginn der Präsentation.
Lucas stellte in zusammenarbeit mit den anderen Teams zusammen die Longdrink Rezepte fertig und stellte die gekauften Getränkeflaschen. Er half beim dekorieren der Bar und testete die Mischverhältnisse der von der Maschine ausgespuckten Getränke. Nebenbei half er auch bei der Fertigstellung der Präsentation.

Der erste Testkandidat wird bedient

Die Abschlusspräsentation war auch ein ‘voller’ Erfolg. Andreas stellte die Teams vor und erzählte kurz über die Entstehung des Projekts, danach zeigten wir den von Gabriel und Ufuk erstellten Film. Abschließend erklärten Noah und ich nochmal die Funktionsweise der Bar am Objekt selbst und dann durfte jeder mal testen wie die so funktioniert. Innerhalb von 3 Minuten musste jedes Getränk einmal aufgefüllt werden, kein Wunder bei der etwa 30 Mann starken Besuchertruppe bestehend aus NETWAYS Personal.

Die Häppchen wurden ebenfalls verputzt und es wurden bereits wilde Theorien gesponnen, wie die Bar noch weiterhin verbessert werden soll, und wann denn die Produktion in Serie gehen soll.

Andrang an der eröffneten Bar

Bernd als selbsternannter Häppchen-Service

Die Woche hat uns Allen viel gebracht, sowohl für unsere Ausbildung als auch fürs Leben.
Wir haben gelernt Projekte als Team anzugehen, Probleme zu lösen, haben unseren Horizont erweitert, verborgende Talente in uns und unseren Kollegen entdeckt und hatte dabei noch unglaublich viel Spaß.
Unsere Hoffnung, dass unser Projekt gut bei den anderen NETWAYSianern ankommt hat sich auch bewahrheitet und das Experiment “Azubi-Projektwoche” war geglückt.
Wir freuen uns schon auf das Projekt im nächsten Jahr!
Dieser Text entstand in Zusammenarbeit der Teams.
Fotos von Gabriel, Gunnar und mir.

Authentication with OAuth

It’s pretty safe to say, that everyone using the web has already made an account for some website. For the broad masses the most common ones would be social media sites like facebook, youtube and twitter. Then there are also online shopping platforms like e-bay and amazon, and more techie orientated pages like stack overflow and all sorts of version control repositories.
(And of course various others for anything and everything else…)

Third party applications often allow you to sign in with your account from another website.

The good thing is, that you don’t need to create a separate account for every single one, but are offered the possibility to just sign in with an account you created for a different service.
The page for which you want to use a different account needs to request data from the original website and use it to authenticate the user (without their input).
In order to give both the requesting website and the user assurance that the data will be safe and reliable some sort of standardisation is required.
Most commonly used is the open standard for authorisation OAuth.
With OAuth it is possible for users to grant access to their information from a certain website without giving away their credentials.

This is what it looks like when the user reviews the permissions.

In order for the third party application to obtain specific information about a user, it has to request an access token from the authorisation server, and when the user grants the permission, use that token to access the resources from the website.
In our specific case we want users to be able to log in to Icinga Exchange with their GitHub accounts.
If you now also want to integrate GitHub on your website and/or see how it’s done: they have a detailed tutorial here.

Warum veranschaulichen wir?

Jedem fällt wohl auf die Schnelle ein Beispiel ein, wo er in seinem Leben schon mal etwas veranschaulicht hat, ob nun für sich Selbst oder für Andere:

  • Das fängt schon in der Schule an; man hält ein Referat über ein kompliziertes Thema und muss dieses seinen Klassenkameraden verständlich erläutern.
  • Man arbeitet in der Uni an einem Text mit einer schier unermessbarer Tiefe und muss sich selbst veranschaulichen, was da nun eigentlich vorgeht.
  • Oder man ist auf der Arbeit in einer Position in der man neue Kollegen in ein Thema einführen muss, um diese nicht mit der Fülle an Informationen zu erschlagen, zieht man zum Vergleich einen ähnlichen, bereits bekannten Ablauf her.

In meinem praktischen Beispiel habe ich das neue Projekt, dass mein Mitazubi und ich nun zu bearbeiten haben.
Wir schreiben im Moment einen “Parser”, der für uns Informationen aus Übersetzungsdateien von Icinga Web 2 auslesen und in eine sortierte Array-Struktur packen soll.
Diese sind in dem .po Format von Poedit strukturiert.
Das sieht ungefähr so aus:
#: /this/is/the/location/toTranslate.php
#| msgid “tranlsate this”
msgid “Translate this.”
“This too, please”
msgtxt “Übersetze dies.”
“Das auch, bitte”
Diese Datei wird nun sortiert nach den verschiedenen Zeilenanfängen, die bereits anzeigen was der sich dahinter befindende String aussagt.
Die Veranschaulichung zur Lösung ist bei uns eine Art Wasserfall/Trichtersystem:
Die Zeile #| msgid “tranlsate this” würde wie folgt sortiert werden
Im Code haben wir das mit einer sehr verschachtelten Konstruktion mit einigen Switch-Cases gelöst.
(Und dieses Chaos auch schon längst Grundüberholt)

Dies zeigt auch, dass die Visualisierungen die wir machen um uns das Konzept darzustellen teilweise von der Umsetzung her stark abweichen. Solange es uns jedoch hilft die Übersicht zu bewahren, ist eine visuelle Darstellung immer gut.
In den meisten Fällen führt das Programmieren ohne visuelle Umsetzung dazu, dass der Code ungeordnet ist und man viele Fälle übersieht, die man nachher durch “dirty” Fixes wieder zu richten versucht. Das macht den Code unleserlich und führt dazu, dass die gesamte Arbeit umsonst war, da man den Code komplett neu strukturieren und neu schreiben muss.
Dies zeigt sich auch an unserem Projekt. Wir arbeiten gerade an der zweiten Version des Parsers, da wir das Problem in der ersten Version relativ ungeordnet angegangen sind, da wir fälschlicherweise angenommen hatten, dass so ein “kleines” Progrämmchen keiner größeren Planung bedarf. Oh wie wir uns geirrt haben.
Die jetzige Planung hat sich etwas gedehnt…
Also daran denken: erst planen, dann schreiben.

Azubis erzählen: Oktober 2016 Feu

This entry is part 11 of 13 in the series Azubis erzählen


Zuerst möchte ich kurz etwas zu meiner Person erzählen:

Mein Name ist Feu Mourek, ich bin 19 Jahre alt und verstärke die Development-Abteilung als Junior Developer.
Meine Freizeit verbringe ich zumeist damit mit meinen online Freunden Dota 2 zu zocken, mit meinen “Reallife” Freunden durch die Käffer (Substantiv, pl: Dörfer) zu ziehen oder mich um mein Pferdchen zu kümmern.

Ich habe vor einem Jahr mein Abitur erlangt und habe danach Deutschland mit fliegenden Fahnen hinter mir gelassen, mit dem Ziel Europa zu erkunden…
Letztendlich habe ich dann ein halbes Jahr bei meinem Freund in Holland gewohnt, wo ich die Restzeit bis zur Ausbildung verbracht habe; mit kurzen Unterbrechungen wie um zum Bewerbungsgespräch nach Nürnberg tuckern.
Dort habe ich zu meiner großen Freude eine Stelle bei Netways bekommen und bin wieder permanent nach Deutschland gekommen und zu meinen Eltern zurück in die Bude gezogen (6 Stunden pendeln ist dann doch etwas viel, dann gehen die anderthalb Stunden von Scheinfeld aus schon eher)…

Im Zug treffe ich immer mal wieder auf alte Bekannte die sich auch in einer Ausbildung befinden und -wie man es so macht- haben wir unsere Betriebe verglichen und da ist mir erst so richtig aufgefallen wie gut ich es in der Netways-Family eigentlich habe!

Dort wurde ich direkt herzlichst Empfangen und durfte mit meinem Mitazubi Noah und den “alten Hasen” aus dem Development Team mit auf das Dev-Retreat. Das coolste Wochenende seit langem!
Die Atmosphäre ist super gut, und es wird immer auf ein gutes Arbeitsklima und auf eine freundschaftlich-produktive Atmosphäre geachtet.
Angefangen mit einem Feierabends-Umtrunk am Freitag, LAN-Parties, gemeinsamen Team-Building Wochenenden mit Paintball (!) bis zu dem Dauerbuffet – Kaffeemaschine.

Nach der zweiwöchigen Einarbeitung in Linux/Unix, den Softwaretools, den von uns angebotenen Softwarelösungen und PHP bin ich jetzt sogar in der Lage kleinere Bugs in IcingaWeb2 zu fixen und mich nützlich zu machen 🙂
Es gibt viel zu lernen, aber es tut gut ständig gefordert zu werden und über sich hinauszuwachsen!

Jetzt aber zurück zur Arbeit –
Feu out!