Seite wählen

NETWAYS Blog

inGraph – The ultimate guide 5/5

Nachdem inGraph in der Version 1.0.1 vor ein paar Tagen released wurde, geht die Entwicklung von neuen Features weiter. Einen genauen Release-Termin für die 1.2 gibt es aber leider nocht nicht. Auf jeden Fall wird momentan fleißig an der 1.0.2 gearbeitet, die sich wie die letzte Version, auf Fehlerbehebungen konzentriert.
Zusammengefasst geht es im fünften und letzten Teil unserer inGraph-Serie um einen kleinen Ausblick.
Worauf kann ich mich freuen?
Templates
Geplant ist die Überarbeitung des Template-System – keine Angst, wir stellen nicht auf XML-Dateien um, sondern wollen es weiter verbessern. Momentan werden Templates anhand von Regulären Ausdrücken zugewiesen, was in dem ein oder anderen Setup zu Problemen führt. Deshalb soll auch das Check-Kommando für die Zuweisung gelten. Beide Möglichkeiten sind dann einzeln oder in Kombination nutzbar.
Die 1.0.x-Versionen haben noch keinen richtigen check_multi-Support, was bei der Anzeige quasi in einen undefinierten Brei aus vielen, vielen Linien endet. Das ändern wir natürlich.
PNG und PDF
Die Erstellung von PNGs via Node.js ist zur Zeit nur prototypisch implementiert und dokumentiert. Daran und an PDF-Generierung wird noch gefeilt.
Blick in die Zukunft
Zukunft prognostizieren anhand der vorhandenen Daten, das wird klasse!
Holt-Winters Forecast with forecast.js
Die komplette Roadmap findet sich auf netways.org.

inGraph 1.0.1 released

inGraph - LogoSoeben wurde die neue stabile Version 1.0.1 unseres Graphing-Tools veröffentlicht. Das Paket steht ab sofort unter www.netways.org zum Download bereit.
In dieser Version wurden hauptsächlich Bugs gefixt, aber auch Unterstützung für icinga-web 1.8 hinzugefügt. Eingeflossen sind zahlreiche kleine Änderunden im Front- und Back-End, aber auch wichtige Fehlerbehebungen, wie

  • Behebt Probleme mit dem „Housekeeping“-Mechanismus, weshalb die Datenbank immer größer wird.
  • Behebt ein Problem mit PostgreSQL, bei dem Graphen ungewöhnliche Spitzen haben.
  • Behebt Probleme mit fehlerhafen Performancedaten, die den Collector-Daemon zum Absturz bringen.

Ausführlichere Informationen zu den behobenen Problemen sind unter www.netways.org zu finden. Dokumentation zum Projekt befindet sich im Wiki.

Eric Lippmann
Eric Lippmann
CTO

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 für viele Kundenentwicklungen in der Finanz- und Automobilbranche verantwortlich.

VirtualBox: Gast-Anwendung im Host starten

Mit den VirtualBox Kommandozeilen-Tools lassen sich Gast-Applikationen, vom Host-System aus, starten. Mit wenig Aufwand kann man so zum Beispiel den Internet Explorer nahtlos in einen Linux-Desktop integrieren. Vorraussetzung dafür ist, dass in der Windows-VM passwortgeschützte Anmeldung aktiviert ist und die Maschine im Seamless Mode (Tastenkombination HOST + L) abgespeichert wurde. In diesem werden nur gestartete Applikationen im Host-System angezeigt, nicht die komplette Maschine.
Den Zustand einer VM kann man auch über die Kommandzeile speichern:

# VBoxManage -q controlvm Windows.7 savestate

Gestartet wird die Maschine wieder mit folgendem Befehl:

# VBoxManage -q startvm Windows.7

Internet-Explorer ausführen:

# VBoxManage -q guestcontrol "Windows.7" execute \
--image "C:\Program Files\Internet Explorer\iexplore.exe" --username vbox --password vbox

Diese Zeilen verpackt in ein Skript, geben eine hervoragende Desktop-Verknüpfung zum Internet-Explorer ;-).

Eric Lippmann
Eric Lippmann
CTO

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 für viele Kundenentwicklungen in der Finanz- und Automobilbranche verantwortlich.

Python: Division von Gleitkomma- und komplexen Zahlen

Der Divisionsoperator (/) in Python 2.x hat, abhängig von seinen Argumenten, unterschiedliche Bedeutung: Teilt man (Long) Integer, erhält man das abgerundete Ergebnis, bei Gleitkomma- (Float) oder komplexen Zahlen eine genügend präzise Annäherung. Erwartet man beispielsweise Float, verwendet aber selbst oder durch Eingabe Integer, kann das zu unerwartenden Verhalten führen:

[elippmann@ws-elippmann ~]$ python
Python 2.7.3 (default, Jul 24 2012, 10:05:38)
[GCC 4.7.0 20120507 (Red Hat 4.7.0-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a, b = 5, 10
>>> a / b

Wenn als Eingabe verschiedene numerische Datentypen erlaubt sind, müssen wir bei der Berechnung sicherstellen, dass das Ergebnis eine Gleitkommazahl ist:

>>> float(a) / b
0.5

Komplexe Zahlen, können mit dieser Methode aber nicht verarbeitet werden:

>>> c = 4j
>>> float(c) / b
Traceback (most recent call last):
File "", line 1, in
TypeError: can't convert complex to float

Um Vorzeichen beizubehalten und alle numerischen Datentypen verabeiten zu können, ist nur die Multiplikation mit 1.0 richtig:

>>> c * 1.0 / b
0.4j

In Python 3 ist das alles nicht mehr nötig, da Ergebnisse automatisch Gleitkommazahlen sind. Ab Python 2.2 kann dieses Verhalten aktiviert werden, indem das entsprechende Feature aus dem __future__-Modul aktiviert wird:

>>> from __future__ import division
>>> a / b
0.5
>>> c / b
0.4j

Zum Abschluss noch ein Hinweis: Wer wirklich Integer-Division verwenden möchte, sollte auch den entsprechneden Operator benutzen, ehe nach Konvertierung des Code zu Python 3, böse Überraschungen warten:

>>> a // b
>>> float(a) // b
0.0
>>> c // b
0j

Zum Weiterlesen:

Eric Lippmann
Eric Lippmann
CTO

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 für viele Kundenentwicklungen in der Finanz- und Automobilbranche verantwortlich.

Autojump – Schnelle Navigation in der Kommandozeile

Wer oft Verzeichnisse in der Linux-Konsole wechselt und dabei Favoriten hat, die immer wieder angesteuert werden, für den ist Autojump genau das Richtige, um fortan schneller zum gewünschten Ort zu kommen.
Nach der Installation pflegt das Tool eine Datenbank, die nach jeder Navigation aktualisiert wird und Verzeichnisse nach ihrer Besuchshäufigkeit priorisiert. Wechsel ich oft in das Verzeichnis „/home/elippmann/workspace“, genügt ab sofort folgender Befehl um schnell in den Ordner zu springen:

# j workspace

Oder sogar:

# j wo

Autojump unterstützt auch tab-completion, bei der eine Liste von Auswahlmöglichkeiten angezeigt wird, die zum Verzeichnismuster passen:

# j do <tab>
do__1__/home/elippmann/Downloads/jdownloader
do__3__/home/elippmann/Documents
do__2__/home/elippmann/Downloads
do__4__/home/elippmann/workspace/icinga-web/lib/doctrine/lib/Doctrine
# j do__2 <tab>
# j /home/elippmann/Downloads

Autojump ist in den Paketen von Debian und Fedora enthalten. Alternative Quellen sind im obigen github-Link zu finden.

Eric Lippmann
Eric Lippmann
CTO

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 für viele Kundenentwicklungen in der Finanz- und Automobilbranche verantwortlich.