OSMC 2015: Der Countdown läuft – nur noch 126 Tage

Heute bereitet Michael Medin uns mit seinem Vortrag “Why we do monitoring wrong” auf die bevorstehende OSMC vor.

OSMC? Was soll das denn sein und wer sind die netten Menschen in diesen Videos? Die Open Source Monitoring Conference (kurz: OSMC) ist die internationale Plattform für alle an Open Source Monitoring Lösungen Interessierten, speziell Nagios und Icinga. Jedes Jahr gibt es hier die Möglichkeit sein Wissen über freie Monitoringsysteme zu erweitern und sich mit anderen Anwendern auszutauschen. Die Konferenz richtet sich besonders an IT-Verantwortliche aus den Bereichen System- und Netzwerkadministration, Entwicklung und IT-Management. Und die netten Menschen, die Ihr in unseren Videos zur OSMC seht, gehören dazu. 2015 wird die OSMC zum 10. Mal in Nürnberg stattfinden.

Gewinnspiel der NETWAYS Web Services

Heute möchten wir auf das Gewinnspiel der Kollegen von unseren NETWAYS Web Services hinweisen. Wer auf Twitter unterwegs ist, hat es vielleicht schon mitbekommen. Für alle anderen hier eine kurze Anleitung:

  1. Es gibt unseren @gethash zu gewinnen! Dieser kommt dann einen Tag zu Euch ins Büro!
  2. Folgt diesem Link hier auf Twitter: https://twitter.com/NetwaysCloud/status/1126869782907768832
  3. Für die Teilnahme am Gewinnspiel muss der Tweet nur retweetet werden und schon seid Ihr dabei.

Ganz konkrete Infos findet Ihr auch auf unserem NETWAYS Blog: https://www.netways.de/blog/2019/05/10/netways-web-services-raffle/
Was das ganze jetzt mit dem NETWAYS Shop zu tun hat? Nun, stellt Euch mal vor, Ihr plant schon seit geraumer Zeit die Anschaffung diverser Hardware bei uns im Shop – aber der Einbau im Rechenzentrum und die Integration in Eure Umgebung hält Euch davon ab. Was wäre nun klüger, als unseren Bernd Erk als NETWAYS Veteranen das ganze durchführen zu lassen? Mehr handwerkliches Geschick und technisches Know How gibt es nirgends so vereint!

Der NETWAYS Shop kann Euch hier einiges an nützlicher Hardware bieten, die Eurer IT-Umgebung und auch anderen Installationen in Euren Gebäuden ein großes Mehr an Sicherheit bietet:

Die Bereitschaft verpennt immer Notifications, die per Mail versendet werden? Kein Problem – rüttelt Sie einfach wach per SMS. Unsere SMSEagle und Braintower SMS Gateways können das. Der Kollege lässt immer die Kühlschranktür offen? Mit der Überwachung durch Thermometer von AKCP, HWGroup oder TinkerForge merkt selbst er das ziemlich schnell. Ihr seid nicht ganz dicht? Dann einfach mal einen Wassereinbruchsensor installieren. Euer Team kommt schnell ins Schwitzen? Hier können Luftfeuchtigkeitssensoren Abhilfe schaffen. Bei Euch läuft manchmal was aus dem Takt? Null Problemo, denn auf die Funkuhrsysteme von GUDE könnte Ihr Euch verlassen. Mit der Kommunikation zwischen den Teams läuft es nicht so richtig? Mit einer STARFACE Telefonanlage habt Ihr immer die richtige Connection.

Besonders zu empfehlen ist hier das oben schon angesprochene Braintower SMS Gateway in der Rack Edition. Es passt hervorragend in 19″ Racks und verfügt über eine redundante Stromversorgung. Außerdem wiegt das Gerät ca. 11 kg. Da würde sich die Teilnahme am Gewinnspiel durchaus lohnen.

Wer sich noch mehr Produkte ansehen möchte, kann sich bei uns im Shop gerne einen Überblick verschaffen oder uns direkt ansprechen. Bei Fragen rund um unsere angebotene Hardware könnt Ihr uns per Mail erreichen – wir helfen wie immer gerne weiter!

 

Nicole Frosch
Nicole Frosch
Sales Engineer

Ihr Interesse für die IT kam bei Nicole in ihrer Zeit als Übersetzerin mit dem Fachgebiet Technik. Seit 2010 sammelt sie bereits Erfahrungen im Support und der Administration von Storagesystemen beim ZDF in Mainz. Ab September 2016 startete Sie Ihre Ausbildung zur Fachinformatikerin für Systemintegration bei NETWAYS, wo sie vor allem das Arbeiten mit Linux und freier Software reizt. In ihrer Freizeit überschüttet Sie Ihren Hund mit Liebe, kocht viel Gesundes, werkelt im Garten, liest...

Meine erste Reise bei NETWAYS!

Letzte Woche war es soweit ich durfte meine erste Dienstreise antreten. Zwar handelte es sich hierbei nur um eine Schulung, aber immerhin. Es ging nach München für die Icinga 2 Fundamentals Schulung.

Mit Lennart als Trainer, ging es Montag Nachmittag los. Zwei Stunden später waren wir angekommen. Natürlich mussten wir noch den Schulungsraum auf Vordermann bringen. Tische zurecht rücken, mit Notebooks bestücken, Unterlagen verteilen, Stromanschluss bereitstellen und so weiter. Der Aufbau nahm schon etwas Zeit in Anspruch, aber zu zweit ging das ganze doch schneller als erwartet. Ab aufs Zimmer um für den nächsten Tag fit zu sein, denn um neun Uhr geht es los. Themen der Icinga 2 Fundamentals Schulung? Wie der Name schon erwarten lässt, Grundkentnisse und Grundlagen zu Icinga2. Doch wer Lennart kennt, weiß dass er in den gegebenen Tagen meist mehr schafft als geplant.

Also eine erholsame Nacht im Hotel später wurden die Schulungsteilnehmer in Empfang genommen. Um acht Uhr trafen die ersten bereits ein um ihre Plätze einzunehmen. Nach einer kleinen Vorstellungsrunde bei der sich Lennart mit dem derzeitigen Wissenstand der Teilnehmer auseinandersetzte sind wir auch schon gleich mit Icinga2 eingestiegen. Egal ob Icinga selbst, einfache Plugins oder der Icinga Director es wurde alles abgedeckt.

Selbstverständlich gab es reichlich Pausen, sowie Getränke und Essen zu genüge. Auf leeren Magen lässt es sich schlecht lernen und die Worte NETWAYS und leerer Magen sind nicht miteinander vereinbar. Am zweiten Schulungstag wurde es gegen Abend mal Zeit für einen Tapetenwechsel und wir machten uns auf dem Weg zum Augustiner Klosterwirt. In geselliger Atmosphäre in diesem rauen Etablissement wurde der Abend ausgeklungen und nach einem deftigen Abendessen auch das ein oder andere Bier getrunken.

Die vier Tage gingen schnell vorüber. Für mich als zukünftigen Consultant war es praktisch zu sehen, wie Lennart den Schulungsteilnehmern individuell zur Seite stehen konnte und noch während der Schulung Auskunft gegeben konnte über die Anwendung in den entsprechenden Umgebungen der Kunden. Es waren vier sehr intensive Tage vollgestopft mit sehr viel Informationen. Seit Freitag bin ich wieder in Nürnberg und jetzt heißt es erst einmal sacken lassen. Wird bestimmt nicht lange dauern bis ich mein erstes Icinga-Projekt bekomme.

Um ehrlich zu sein, war ich schon ein bisschen nervös. Vor der ersten richtigen Dienstreise, aber jetzt kann ich die nächste kaum erwarten.

Tobias Bauriedel
Tobias Bauriedel
Junior Consultant

Tobias ist ein offener und gelassener Mensch, dem vor allem der Spaß an der Arbeit wichtig ist. Bei uns macht er zurzeit seine Ausbildung zum Fachinformatiker. In seiner Freizeit ist er viel unterwegs und unternimmt gern etwas mit Freunden.
OSDC 2019: Buzzwo…erm…DevOps, Agile & YAML programmers

OSDC 2019: Buzzwo…erm…DevOps, Agile & YAML programmers

Cheers from Berlin, Moabit, 11th round for OSDC keeping you in the loop with everything with and around DevOps, Kubernetes, log event management, config management, … and obviously magnificent food and enjoyable get-together.

 

Goooood mooooorning, Berlin!

DevOps neither is the question, nor the answer … Arnold Bechtoldt from inovex kicked off OSDC with a provocative talk title. After diving through several problems and scenarios in common environments, we learned to fail often and fail hard, and improve upon. DevOps really is a culture, and not a job title. Also funny – the CV driven development, or when you propose a tool to prepare for the next job 🙂 One key thing I’ve learned – everyone gets the SAME permissions, which is kind of hard with the learned admin philosophy. Well, and obviously we are YAML programmers now … wait … oh, that’s truly inspired by Mr. Buytaert, isn’t it? 😉

Next up, Nicolas Frankel took us on a journey into logs and scaling at Exoscale. Being not the only developer in the room, he showed off that debug logging with computed results actually eats a lot of resources. Passing the handles/pointers to lazy log function is key here, that reminds me of rewriting the logging backend for Icinga 2 😉 Digging deeper, he showed a UML diagram with the log flow – filebeat collects logs, logstash parses the logs into JSON and Elasticsearch stores that. If you want to go fast, you don’t care about the schema and let ES do the work. Running a query then will be slow, not really matching the best index then – lesson learned. To conclude with, we’ve learned that filebeat actually can parse the log events into JSON already, so if you don’t need advanced filtering, remove Logstash from your log event stream for better performance.

Right before the magnificent lunch, Dan Barker being a chief architect at RSA Security for the Archer platform shared stories from normal production environments to actually following the DevOps spirit. Or, to avoid these hard buzzwords, just like “agile”, and to quote “A former colleague told me: ‘I’ve now understood agile – it’s like waterfall but with shorter steps.'”. He’s also told about important things – you’re not alone, praise your team members publicly.

 

Something new at OSDC: Ignites

Ignite time after lunch – Werner Fischer challenged himself with a few seconds per slide explaining microcode debugging to the audience, while Time Meusel shared their awesome work within the Puppet community with logs of automation involved (modulesync, etc) at Voxpupuli. Dan Barker really talked fast about monitoring best practices, whereas one shouldn’t put metrics into log aggregation tools and use real business metrics.

 

The new hot shit

Demo time – James “purpleidea” Shubin showed the latest developments on mgmt configuration, including the DSL similar to Puppet. Seeing the realtime changes and detecting combined with dynamic processing of e.g. setting the CPU counts really looks promising. Also the sound exaggeration tests with the audience where just awesome. James not only needs hackers, docs writers, testers, but also sponsors for more awesome resource types and data collectors (similar to Puppet facts).

Our Achim “AL” Ledermüller shared the war stories on our storage system, ranging from commercial netApp to GlusterFS (“no one uses that in production”) up until the final destination with Ceph. Addictive story with Tim mimicking the customer asking why the clusterfuck happened again 😉

Kedar Bidarkar from Red Hat told us more about KubeVirt which extends the custom resource definitions available from k8s with the VM type. There are several components involved: operator, api, handler, launcher in order to actually run a virtual machine. If I understand that correctly, this combines Kubernetes and Libvirt to launch real VMs instead of containers – sounds interesting and complicated in the same sentence.

Kubernetes operators the easy way – Matt Jarvis from Mesosphere introduced Kudo today. Creating native Kubernetes operators can become really complex, as you need to know a lot about the internals of k8s. Kudo aims to simplify creating such operators with a universal declarative operator configured via YAML.

 

Oh, they have food too!

The many coffee breaks with delicious Käsekuchen (or: Kaiser Torte ;)) also invite to visit our sponsor booths too. Keep an eye on the peeps from Thomas-Krenn AG, they have #drageekeksi from Austria with them. We’re now off for the evening event at the Spree river, chatting about the things learnt thus far with a G&T or a beer 🙂

PS: Follow the #osdc stream and NetwaysEvents on Twitter for more, and join us next year!

Michael Friedrich
Michael Friedrich
Senior Developer

Michael ist seit vielen Jahren Icinga-Entwickler und hat sich Ende 2012 in das Abenteuer NETWAYS gewagt. Ein Umzug von Wien nach Nürnberg mit der Vorliebe, österreichische Köstlichkeiten zu importieren - so mancher Kollege verzweifelt an den süchtig machenden Dragee-Keksi und der Linzer Torte. Oder schlicht am österreichischen Dialekt der gerne mit Thomas im Büro intensiviert wird ("Jo eh."). Wenn sich Michael mal nicht in der Community helfend meldet, arbeitet er am nächsten LEGO-Projekt oder geniesst...
NETWAYS Web Services Raffle

NETWAYS Web Services Raffle

We wanted to do a big raffle. A very special one. You can win 3 amazing prices and how this works will be described below. But first of all, what are the prices?

  • First place: Our incredible @gethash for one day at your office*
  • Second place: One NWS app for free. A whole year! **
  • Third place: One big box of Dragee Keksi

The requirements will be explained in detail in the tweet of the NWS Twitter Account. Basically you have to follow the NWS Twitter account and retweet the tweet, where this blogpost is published. It will be pinned to the account till the end of May. We will draw 3 winners from all participants.

The great colleagues of Netways are excluded from this raffle cause Bernd is afraid of their crazy ideas.

The winners will be announced on May 31st 2019 and will be published on the NWS Twitter account.

We wish good luck to all of you!

*Restriction: it has to be within Germany!
**You decide which app. OpenStack is excluded here

 

Marius Gebert
Marius Gebert
Systems Engineer

Marius ist seit 2013 bei NETWAYS. Er hat 2016 seine Ausbildung zum Fachinformatiker für Systemintegration absolviert und ist nun im Web Services Team tätig. Hier kümmert er sich mit seinen Kollegen um die NWS Plattform und alles was hiermit zusammen hängt. 2017 hat Marius die Prüfung zum Ausbilder abgelegt und kümmert sich in seiner Abteilung um die Ausbildung unserer jungen Kollegen. Seine Freizeit verbringt Marius gerne an der frischen Luft und ist für jeden Spaß zu...

PHP-Frameworks – Was sie sind und für warum sie gebraucht werden.

Im Rahmen eines Projekts woran ich selber arbeiten darf, bin ich oftmals auf den Begriff Framework gestoßen und habe mir dann erklären lassen für was wir eigentlich genau dieses Framework benutzen und warum kein anderes.
Daher möchte ich ein paar Frameworks aufführen, sie zusammenfassen und natürlich Kund darüber geben, was sie machen.
Zu allererst möchte ich mit der allgemeinen Defintion von „Framework“ anfangen. Let‘s google it.
Ein Programm-Code besteht aus vielen kleinen Bausteinen. Um das Programmieren zu erleichtern und Zeit zu sparen, gibt es sogenannte Frameworks. Sie sind keine eigenständigen Programme, sondern stellen ein Programmiergerüst für den Entwickler.

Nun kommen wir zum Smart Framework.
Hierbei handelt es sich um ein Open-Source-Produkt, welches dem Model-View-Controller-Datenmodell folgt. Dieses Projekt wurde 2009-2011, von einem Software-Unternehmen, das bereits 15 Jahre Erfahrung im Web hat, gestartet. Der Release-Termin war im Februar 2012 und es wird bis dato noch relativ oft aktualisiert. Der letzte Stand der Aktualisierung ist der 25. April 2018 mit der Version 3.7.5. Zu den wichtigsten Funktionen gehört die reichhaltige Unterstützung verschiedener Typen von Datenbanken wie MySQL, SQLite, MongoDB, PostgreSql sowie andere JavaScript-Komponenten, integrierte Map-Handler(Google Maps und Bing Maps) und Redis für das Caching.
Unter anderem meint der Ersteller des Frameworks, dass dieses um einiges schneller ist als andere Frameworks wie Laravel und Zend. Ein Grund es mehr auszuprobieren.

 

wurde 2005 von Fabien Potencies, CEO bei SensioLabs und Blackfire.io, gestartet. Symfony besteht aus mehreren PHP-Komponenten, mehr als 30, die ein Framework bilden. All diese Komponenten hier aufzulisten, wäre einfach zu viel aber unter diesen 30 erweisen sich ein paar als interessant und es lohnt sich diese hier zu erwähnen. Dazu gehört unter anderem die Cache-Komponente, die ein erweitertes PSR-6 und PSR-16 zum Hinzufügen von Cache zu den Anwendungen bereitstellt. Konsolenkomponenten, die selbsterklärend sind, und eine PHPUnit Bridge, welche Legacy-Tests und veralteten Code meldet. Zuletzt noch Sicherheits-, Übersetzungs-, Routing- und Validierungskomponenten. Ebenfalls einzigartig ist die Dokumentation. Diese ist von dem Ersteller des Projekts sehr detailliert ausgeführt und es wird jede einzelne Komponente erklärt.
 

TwistPHP
Dieses Framework wurde zuerst als privates Projekt entworfen und hat sich dann während der Verbesserung, im Juli 2014 als Repository im GitHub wieder gefunden. Die erste offizielle Freigabe war aber wiederum im November 2014.
TwistPHP macht die Benutzerfreundlichkeit zu seinem Markenzeichen, da es ein kleines Framework ist. Hierbei handelt es sich auch wieder um ein Open-Source-Framework, welches unter der GNU-Lizenz angeboten wird.
Im Laufe der Zeit hat sich die Software weiterentwickelt und hat letztendlich mit der Version (3.0.5) eine vollständige MVC-Architektur, ein objektorientiertes Design, eine brandneue Methode zur Verbindung mit der Datenbank und zur Erstellung von MySQL-Abfragen, wobei die Art und Weise, wie es aufgebaut wurde, die Erweiterbarkeit und Zuverlässigkeit verbessert.


Fangen wir am Ursprung an. TYPO3 ist ein open-source-entwickeltes CMS, welches 1998 veröffentlicht wurde. TYPO3 wird genutzt um Websiten zu erstellen und wurde von mehr als 300 Mitwirkenden verbessert und aktuell wurde es mehr als 500.000 Mal installiert (Stand Januar 2019). Das Team von TYPO3 wollte ein modernes Produkt schaffen, welches unabhängig von TYPO3 sein sollte. Im August 2011 folgte dann die erste Beta von TYPO3 Flow sowie ein Open-Source-Produkt. Das Prinzip des Codings, vom neuen Framework, richtet sich nach dem MVS-Paradigma, Aspect Oriented Programming, Domain Driven Desgin und den Test Driven Development. Fluid, ein Template, ist ein weiteres Feature von TYPO3 Flow. Fluid unterstützt alle logischen Strukturen einer Programmiersprache wie zum Beispiel Iterationen und Schleifen usw., indem es eine einfache Syntax bietet und PHP in den Template-Dateien vermeidet.

Zu guter Letzt eines der beliebtesten Frameworks das:
Der Beliebtheitsgrad lässt sich anhand der hohen Installationszahl (mehr als 379 Millionen) festhalten, obwohl es einige Streitigkeiten über Zend gibt. Das Open-Source-Projekt wurde im März 2006 erstmals veröffentlicht und hat eine BSD-Lizenz (Freie Verwendung der Software). Nach Version 2.5 beschlossen die Entwickler ein modulares Produkt zu entwerfen, sie so in mehrere Komponenten aufzuteilen und dadurch es zu einer Sammlung von PHP-Paketen wurde. Mehr als 60 Komponenten und ein Plug-in stehen zur Auswahl. Darunter gehört die Authentifizierung, Grypt, Json, Mail, Math, Paginator, Serializer und Validator. Ein weiterer Vorteil der Verwendung von Zend ist die Prädisposition für das Test Driven Development. Zend implementiert Zend_test, was PHPUnit verwendet. Es erlaubt einem Controller, Modelle und Bibliotheken zu verwenden. Um PHPUnit in das Projekt zu implementieren, braucht man Zend_tool, das standardisierte Scaffolding Utility von Zend.

Fazit
Auf die Frage „Und welches ist jetzt das beste PHP-Framework?“ gibt es keine Antwort aber wenn man vor der Auswahl steht und nicht weiß welches Framework man nun benutzen soll helfen folgende Fragen.

  • Was will ich entwickeln?
  • Wann ist meine Deadline?
  • Wie schnell soll mein Projekt verfügbar sein?
  • Wie viel Zeit bleibt mir, um die neue Syntax zu erlernen?
  • Gibt es eine gute Dokumentation, aus der ich lernen kann?

Hilfreich ist es diese Fragen sich vor jedem Projekt zu stellen und dann zu schauen welches Framework den nun den gestellten Fragen Antwort leistet.

Niko Martini
Niko Martini
Junior Developer

Egal ob zu Hause oder bei NETWAYS, Niko hockt gern vor dem PC. Ab und zu fährt er auch mal mit seinem Dad auf eine Fahrradtour quer durch Deutschland. Nach seinen ersten Tagen bei uns, in denen er NETWAYS, die Kollegen und Tools näher kennengelernt hat, freut er sich besonders auf die kommenden Jahre.
FM Empfänger mit dem Raspberry Pi 3

FM Empfänger mit dem Raspberry Pi 3

Es gibt viele Projekte für Einsteiger, um mit einem Raspberry Pi kleineres zu realisieren. Unter anderem ein FM Empfänger, wofür die folgende Anleitung genutzt werden kann.

Materialien: 

  1. Raspberry Pi 3
  2. Female Female Jumper
  3. Tea5767 Modul
  4. Lautsprecher (Beispiel)
  5. AUX Kabel

Vorgehen: 

1) Die mitgelieferte SD Karte enthält bereits ein Noob OS, womit Raspian installiert werden kann. Sollte ein anderes Kit ohne Karte bestellt werden, braucht man natürlich auch eine SD Karte. Noob OS dann einfach herunterladen, entpacken und auf die Karte kopieren

2) I2C aktivieren via: sudo raspi-config
-> Interfacing Options
-> I2C
-> YES

3) Der Raspberry Pi muss natürlich auch mit dem Modul verbunden werden. Hierzu werden die Female-Female Jumper benutzt.
Raspberry Pi    Tea5767
5V              5V
SDA.1           SDA
SCL.1           SCL
GND             GND

Auf welche Pins nun genau gesteckt werden muss, kann mittels gpio readall herausgefunden werden. Falls SDA.1 und SCL.1 bereits in Verwendung sind, kann auch auf 0 oder 2 ausgewichen werden.

4) Ob das Modul auch erkannt wurde, wird folgendermaßen überprüft:
i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Die “1” steht hier für SCl.1 und SDA.1 – sollte SDA.0 und SCL.0 verwendet worden sein, muss der Command entsprechend angepasst werden.  Wenn in der angezeigten Tabelle keine Zahl erscheint, wird das Modul nicht erkannt. Dies liegt meist an einer falschen Verkabelung oder einem defekten Modul.

5) Aus einer anderen Anleitung haben wir uns eines Links zum Code bedient, das den Tea5767 steuert. Es kann hier natürlich selbst auch ein Skript geschrieben werden, wenn tiefere Einblicke gewünscht sind. Hierfür wird python3 benötigt sowie verschiedene Module. Beim ersten Aufruf des Skriptes wird aber mitgeteilt, ob etwas nachinstalliert werden muss, oder nicht. Falls das der Fall ist, kann mit pip3 install $modul entsprechend nachjustiert werden.
Unter /home/pi ein neues Verzeichnis (z.B.: PiFM) erstellen und das Skript dort ablegen.

6) Mit python3 radio.py kann nun der eigentliche Radio gestartet werden. Es empfiehlt sich, das Skript kurz durchzulesen, da der Radio über Tasten gesteuert wird. So wird mit “W” die Frequenz um +1 verändert, mit “E” um +0.1

Alles in allem ist das ein schönes Projekt um erste Eindrücke in die Funktionsweise eines Raspberry Pis zu bekommen und wie bestimmte Module funktionieren, verbunden und genutzt werden. Interessant wird das auch, wenn man parallel dazu mit einem 2. Pi einen FM Transmitter aufbaut. Hierzu gibt es in einem späteren Blogpost aber mehr.

Marius Gebert
Marius Gebert
Systems Engineer

Marius ist seit 2013 bei NETWAYS. Er hat 2016 seine Ausbildung zum Fachinformatiker für Systemintegration absolviert und ist nun im Web Services Team tätig. Hier kümmert er sich mit seinen Kollegen um die NWS Plattform und alles was hiermit zusammen hängt. 2017 hat Marius die Prüfung zum Ausbilder abgelegt und kümmert sich in seiner Abteilung um die Ausbildung unserer jungen Kollegen. Seine Freizeit verbringt Marius gerne an der frischen Luft und ist für jeden Spaß zu...

Tracing PHP memory usage with Xdebug


In addition to Xdebug’s great profiling and debugging features it also supports tracing memory usage. This helps to find functions which consume a lot of memory or to identify memory leaks. The following options enable tracing right away:

xdebug.auto_trace=1
xdebug.trace_format=1

Traces are written to /tmp by default. You may change this via the xdebug.trace_output_dir setting. With xdebug.trace_format=1 you tell Xdebug to write traces in an easy-to-parse tab separated format. The logged information includes the start and end times of function calls as well as the amount of used memory when entering and leaving the function. The last two numbers help to figure out which functions increase the memory usage a lot. Luckily you don’t have to interpret the traces yourself but use a script for that.
The script parses the trace files and aggregates the numbers by function name. It accepts a few different keys to sort the output: time-own, memory-own, time-inclusive, memory-inclusive and calls. You can also configure the number of elements to show:

php tracefile-analyser.php trace.662975268.xt memory-own 10
Showing the 10 most costly calls sorted by 'memory-own'.
                                                          Inclusive        Own
function                                          #calls  time     memory  time     memory
------------------------------------------------------------------------------------------
Icinga\Application\ClassLoader->loadClass             90  0.9151  2638176  0.0814  1262312
Zend_Loader::loadFile                                 17  0.1496  1183528  0.0345   882928
PDOStatement->execute                                 22  0.0102   395368  0.0102   395368
require                                               85  0.6066  1548112  0.0157   338512
require_once                                          22  0.0506   566296  0.0107   149128
Icinga\Application\ClassLoader->requireZendAutoloader  1  0.0045   154360  0.0023   120136
Composer\Autoload\includeFile                          8  0.0148    86544  0.0028    59448
Zend_Db_Select->_join                                 41  0.2599    59368  0.0627    57072
explode                                              135  0.0341    55672  0.0341    55672
Icinga\Application\Benchmark::measure                 94  0.2099    47448  0.0737    47352
Eric Lippmann
Eric Lippmann
Lead Senior Developer

Eric kam während seines ersten Lehrjahres zu NETWAYS und hat seine Ausbildung bereits 2011 sehr erfolgreich abgeschlossen. Seit Beginn arbeitet er in der Softwareentwicklung und dort an den unterschiedlichen NETWAYS Open Source Lösungen, insbesondere inGraph und im Icinga Team an Icinga Web. Darüber hinaus zeichnet er sich für viele Kundenentwicklungen in der Finanz- und Automobilbranche verantwortlich.

Adfree Internet with pi-hole

There are two ways to motivate people: intrinsic, motivation stems from the person her/himself or extrinsic, where an external force pushes a person to do something.
I myself experienced this external motivation when I bought a new TV and wanted to test the YouTube-Application.
Using ublock origin on both private and work-related devices, I was surprised by the amount of advertisements being displayed – before and during the video.

mildly annoying, no offense Ben Schmid!


I don’t want to dive to deep into the discussion whether ads and tracking are good or bad, but show you a way how to get rid of most of the ads in your network.
One of the most basic protocol of the internet is DNS. It resolves Domain Names (like nws.netways.de) that you type into your browser to IP Adresses (185.11.252.146) which the browser then invokes. A common analogy would be “phone directory of the Internet”. This is the part we’re going to have closer look on.
Most ad blocking techniques use lists of hosts which deliver the ads (like noisy.popups.com) to your device and direct your device to 127.0.0.1 (localhost) instead. You’re essentially calling yourself.
For web browsers, there are very popular plugins available, even for (rooted) mobile phones similar solutions are known, but have you ever tried to root your TV or Apple device and side load an application?
This is exactly the point where pi-hole is getting handy.
It uses aforementioned lists to block ads but not only for the device you installed an adblocker on but for all devices in your network.
You just have to use pihole as DNS-Server in your network – if you can’t configure a specific DNS fuss-free on your device or router you might want to use pi-hole as your DHCP-Server.
This way it pushes itself as DNS to your devices.
If you want to have a look at it, there are several very good installation guides in multiple languages available.
Feel free to invest one hour of setting it up and enjoy a new ad free network and don’t forget to support the project 🙂

Tim Albert
Tim Albert
System Engineer

Tim kommt aus einem kleinen Ort zwischen Nürnberg und Ansbach, an der malerischen B14 gelegen. Er hat in Erlangen Lehramt und in Koblenz Informationsmanagement studiert, wobei seine Tätigkeit als Werkstudent bei IDS Scheer seinen Schwenk von Lehramt zur IT erheblich beeinflusst hat. Neben dem Studium hat Tim sich außerdem noch bei einer Werkskundendienstfirma im User-Support verdingt. Blerim und Sebastian haben ihn Anfang 2016 zu uns ins Managed Services Team geholt, wo er sich nun insbesondere...

Postman – API development and testing made simple

As a Icinga 2 developer I often use the Icinga 2 REST API to test new features or debug Icinga itself. Of course most people use curl for that kind of task, and so did I.
That resulted in sometimes rewriting the same request a lot over the course of a few weeks. To counter that I just saved my most used requests into my notes which wasn’t that simple to maintain.
A few weeks ago that finally changed as I stumbled across Postman. Postman is a tool for developing, maintaining and testing REST APIs. I’d like to give you a quick rundown of its features, to show you why it has made my development life so much easier. (mehr …)

Noah Hilverling
Noah Hilverling
Developer

Nachdem Noah bei einer vierjährigen Exkursion nach Belgien seine Liebe zum Programmieren entdeckte, holte der gebürtige Euskirchener innerhalb kürzester Zeit gleich zwei Schulabschlüsse nach. Danach verließ Noah sogar den schönen Chiemsee, um sich ab September 2016 im Rahmen der Ausbildung zum Fachinformatiker für Anwendungsentwicklung bei NETWAYS voll und ganz dem Programmieren hinzugeben und viele unterschiedliche Erfahrungen zu sammeln. Wenn er mal nicht am Programmieren und Zocken ist, brettert er mit seinem Snowboard die Pisten runter,...