blog.bartlweb - a technologist's external brain

Alle Artikel

ImageMagick auf vHost von Host Europe extrem langsam

Einige Webanwendungen müssen Grafiken verändern und erzeugen und nutzen dazu entweder ImageMagick oder GraphicsMagick. Während sich GraphicsMagick auf den virtuellen Servern von Host Europe ganz normal verhält, geht ImageMagick beim Erzeugen oder Konvertieren von Grafiken extrem behäbig zu Werk.

Schuld daran ist das Feature OpenMP das beim Kompilieren von Programmen zur Optimierung von Multithreading-Aufgaben gesetzt wird. Das mit den Distributionen ausgelieferte ImageMagick-Paket hat dieses Feature standardmäßig aktiviert und läuft in der virtualisierten Umgebung von Host Europe daher sehr imperformant (teilweise dauern einzelne Prozesse mehre Sekunden, statt Millisekunden).

Lösung

Abhilfe schafft das selbstständige Kompilieren von ImageMagick ohne aktiviertes OpenMP-Feature. Dazu gehen Sie unter Ubuntu 14.04 LTS wie folgt vor:

Apache HTTP-Server hängt unter Windows beim Ausliefern von Webseiten

Ich nutze den Apache Webserver unter Windows für die lokale Entwicklung und habe dabei in letzter Zeit des Öfteren beobachtet, dass plötzlich Anfragen gar nicht mehr oder nur mit erheblicher Zeitverzögerung beantwortet werden und das sowohl bei lokalen Aufrufen (localhost) als auch Aufrufen aus dem Netzwerk.

In der Log-Datei habe ich den folgenden Fehler entdeckt:

[Sun Mar 06 19:55:41.729117 2016] [mpm_winnt:warn] [pid 3820:tid 2240] (OS 64)Der angegebene Netzwerkname ist nicht mehr verf��r.  : AH00341: winnt_accept: Asynchronous AcceptEx failed.

Eine kurze Recherche hat zwei mögliche Lösungsansätze aufgezeigt, die das Phänomen behoben haben.

Remote-Beitrag: Smartwatches im Alltag

Glaubt man Apple, Samsung & Co sind Smartwatches der neue Trend im Mobilbereich. Sieht man sich Verkaufszahlen und Nutzermeinungen an - scheiden sich eindeutig die Geister. Ich wollte es genauer wissen und habe eine Smartwatch im Alltagseinsatz getestet. Meine Erfahrungen und Eindrücke und ein paar Hintergrundinformationen habe ich im neusten Gastbeitrag "Smartwatches im Alltag" auf www.app-entwicklung.info zusammengetragen.

Lesen Sie meinen Gastbeitrag unter: www.app-entwicklung.info/2016/05/smartwatches-im-alltag/

Mit Vysor Android-Smartphones und Tablets vom PC aus steuern

Die Google Chrome Erweiterung Vysor ermöglicht die Fernsteuerung von Android-Geräten (Smartphones und Tablets) vom PC aus. Das Tool läuft auf Basis des Chrome-Browsers sowohl unter Windows, Mac OS als auch Linux.

Einzige Voraussetzung ist den Entwicklermodus auf dem Android-Gerät zu aktivieren, Vysor installiert danach automatisch die Steuerungs-App und dann muss das Telefon nur noch mittels USB-Kabel mit dem Rechner verbunden werden. Vysor zeigt nun den Bildschirminhalt des Geräts am PC an und dieses kann mittels Maus und Tastatur gesteuert werden.

Weitere Informationen unter www.vysor.io bzw. Download der Chrome-Extension unter chrome.google.com/webstore/detail/vysor-beta/gidgenkbbabolejbgbpnhbimgjbffefm.

Browser über die Kommandozeile im Vollbild-/Kiosk-Modus starten

Wer einen Windows-Rechner oder ein Windows-Tablet als Infoscreen nutzen möchte, wird beim Start vermutlich sofort eine definierte Website im Vollbildmodus auch Kioskmodus genannt aufrufen wollen. Allen gängigen Browsern kann über die Kommandozeile eine Webadresse für den direkten Aufruf beim Start mitgegeben werden, aber nur Google Chrome und Microsofts Internet Explorer lassen sich auch direkt in den Kioskmodus versetzen.

Den Kiosk-Modus können Sie bei den meisten Browsern mit F11 beenden, ansonsten hilft es auch das Programm durch Strg+W zu Beenden.

Internet Explorer

Der folgende Befehl öffnet eine Instanz des Microsoft Internet Explorers im Kioskmodus, unabhängig davon ob bereits Fenster geöffnet sind oder nicht.

Browser mittels JavaScript in den Vollbildmodus versetzen

Das unten stehende JS-Snippet versetzt den Browser in den Vollbildmodus und funktioniert in allen gängigen Browsern (Mozilla Firefox, Google Chrome, Microsoft Internet Explorer, Apple Safari)

Achtung: Apple Safari wird nur unter Mac OS unterstützt, denn unter iOS erlaubt Apple für Websites generell keinen Vollbildmodus.

JavaScript-Code

function fullscreen(){
    elem = document.getElementsByTagName("body")[0];
   
    if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement){
        if(elem.requestFullscreen){
            elem.requestFullscreen();
        } else if(elem.msRequestFullscreen){
            elem.msRequestFullscreen();
        } else if(elem.mozRequestFullScreen){
            elem.mozRequestFullScreen();
        } else if(elem.webkitRequestFullscreen){
            elem.webkitRequestFullscreen(elem.ALLOW_KEYBOARD_INPUT);
        }
    } else {
        if(document.exitFullscreen){
            document.exitFullscreen();
        } else if(document.msExitFullscreen){
            document.msExitFullscreen();
        } else if(document.mozCancelFullScreen){
            document.mozCancelFullScreen();
        } else if(document.webkitExitFullscreen){
            document.webkitExitFullscreen();
        }
    }
}

Einschränkungen

Bei der Entwicklung von Websites, die im Vollbildmodus angezeigt werden sollen, sind die folgenden beiden Dinge zu beachten:

Microsoft Surface RT für den Dauerbetrieb konfigurieren

Windows 8.1 auf dem Surface RT hat die lästige Angewohntheit sich nach einigen Minuten selbst zu sperren. In den Einstellungen gibt es weder eine Möglichkeit die Wartedauer bis zur Anzeige des Sperrbilschirms zu definieren, noch diesen überhaupt zu deaktivieren.

Im Netz gibt es zahlreiche Anleitungen um den Sperrbildschirm unter Windows 8.1 zu deaktivieren. Angefangen über Einstellungen für den Bildschirmschoner - die am Surface RT nicht existieren, über das Bearbeiten der Gruppenrichtlinien (Administrative Vorlagen -> Systemsteuerung -> Anpassung: Sperrbildschirm nicht anzeigen) bis hin zu Registry-Änderungen zum Einblenden der Option Zeitlimit für Konsolensperre in den Einstellungen des Energisparplans.

Diese Tipps haben alle etwas gemeinsam: Sofern diese eventuell auf einem Standard Windows 8 greifen, am Surface RT bewirken diese leider überhaupt nichts.

Helligkeit des Displays unter Windows über die Kommandozeile steuern

Notebooks und Windows-Tablets können anhand der Energiespareinstellungen und des Zustandswechsels zwischen Netz- und Akku-Betrieb gemäß den vorgenommenen Einstellungen die Displayhelligkeit automatisch regeln. Was aber wenn das Gerät als digitaler Bilderrahmen oder Infodisplay betrieben werden und über Nacht die Displayhelligkeit reduzieren soll, um nicht zu hell zu leuchten bzw. Energie zu sparen?

Windows lässt es mit etwas Aufwand zu, die Einstellungen des aktuellen Energiesparplans über die Kommandozeile zu ändern und damit auch die aktuell gesetzte Displayhelligkeit. Mit einem kleinen Batch-Skript und den geplanten Aufgaben lässt sich so die Displayhelligkeit bei Bedarf manuell regulieren.

Probleme mit zwei Netzwerkkarten beim Betrieb im selben Netzwerk unter Windows

Ein Serversystem, das gleichzeitig sowohl Dienste als auch Netzwerkfreigaben bereitstellt, kommt bei hohen Zugriffszahlen schnell einmal in einen Engpass bei der Anbindung ans lokale Netzwerk. Es würde sich doch anbieten eine Netzwerkkarte für Zugriffe auf Dateifreigaben und eine Netzwerkkarte für Zugriffe auf Serverdienste in den Rechner einzubauen und die Dienste an die entsprechenden Karten bzw. IP-Adressen der Karten zu binden.

Die Idee scheint schlüssig, nur verhält sich Windows ohne weitere Konfiguration mit zwei Netzwerkkarten nicht wie gedacht. Auch wenn nur eine Netzwerkkarte ein eingetragenes Gateway hat, kann es vorkommen, dass Windows Zugriffe auf den Server zwar über die Netzwerkkarte, welche die angesprochen IP-Adresse zugewiesen hat, entgegennimmt (Downstream) die Antwortpakete (Upstream) aber trotzdem über die andere Karte ins Netzwerk schickt.

Raspberry Pi blockiert unregelmäßig den Netzwerkzugriff von außen

Wird dem Raspberry Pi eine fixe IP-Adresse zugewiesen kommt es unter Umständen hin und wieder zu Ausfällen des Netzwerks, wobei ausgehende Verbindungen weiterhin funktionieren, eingehende Verbindungen (z.B. der Zugriff via SSH) allerdings blockiert wird. Ein Neustart behebt das Problem meistens.

Schuld an diesem Verhalten ist eine falsche Einstellung in /etc/network/interfaces, die der Netzwerkschnittstelle zwar eine fixe IP-Adresse zuordnet, gleichzeitig aber weiterhin IP-Adressen per DHCP bezieht. Prüfen Sie ob der Eintrag allow-hotplug eth0 existiert und entfernen Sie diesen, damit wird die Anfrage von IP-Adressen via DHCP vollständig deaktiviert und es greift nur mehr die fix zugewiesene IP-Adresse.

auto lo
iface lo inet loopback
 
auto eth0
# allow-hotplug eth0
 
iface eth0 inet static
address 192.168.x.x
netmask 255.255.255.0
gateway 192.168.x.x