Heute ist der neue Stick angekommen und nachdem die Software von der Herstellerseite installiert wurde, wurde er auch problemlos unter Windows 10 erkannt.
Der Stick ist ein 4G Systems XS Stick P10 und bei dem Preis kann man wohl erst einmal nicht viel falsch machen.
Um RXTXComm für Java in Eclipse verwenden zu können muss man auch die DLLs Eclipse bekannt machen.
Im Buildpath muss man die JAR finden und dann ausklappen. Bei der Native Library Location muss man Edit wählen.
Ich hatte die DLLs einfach mit im lib-Folder abgelegt.
Danach lief auch die Suche von SMSlib.
Leider funktioniert mein alter Huawei E1750 unter Windows 10 wohl nicht mehr so einfach. Ich habe mir mal den 4G Systems XS Stick P10 bestellt und hoffe, dass dieser gleich und ohne Probleme funktioniert.
Und dann mal die Beispiele zum SMS-Empfang von SMSlib testen.
Zum 10. Geburtstag meines PHP-Frameworks wird sich da viel ändern und es damit dann wieder etwas mehr zu anderen Frameworks aufschließen können.
Mein eigener Class-Loader fliegt raus und es wird noch der ClassLoader vom Composer verwendet. Meiner kann zwar auch mit PSR4 umgehen, aber nach dem Umstieg muss ich dann auch alles darauf umstellen und habe keine Ausrede mehr, weil die Kompatibilität weg fällt.
Es gibt nun ein public-Verzeichnis so dass alle Config-Dateien und Classes außerhalb des Bereiches liegen, auf dem Benutzer zugreifen können. Das sorgt für mehr Sicherheit, macht das Laden von CSS und Bildern aus dem Theme-Verzeichnis aber komplizierter. Ich überlege hier auf Assetic umzusteigen. Momentan läuft meine Lösung aber sehr gut.
Und das Beste und wichtigste was aber auch am meisten Arbeit machen wird (darum habe ich ganz viele alte Module erst einmal gelöscht und lasse auch die alten PHP-Pages drin) ist, dass Module-Pages nun wirklich mit Controller und Twig-Template gerendert werden. Die Twig-Templates könenn vom Theme und von eigenes Templates in der Instance überschrieben werden und so kann man nun endlich das Aussehen der Module leicht und schnell anpassen.
Smarty war schon länger drin, wurde aber nie benutzt und ist jetzt raus geflogen.
Mein erstes Projekt damit wird sein, die Zeiterfassung für Kunden-Projekte neu zu schreiben und für alle brauchbar zu machen. Das wird wohl am Ende nur 1-2 Tage dauern. Also nichts im Vergleich zum Umbau des Frameworks.
Das King Pigeon RTU5023 ist ein Gerät zum Messen von Temperatur und Luftfeuchtigkeit. Der Vorteil ist, dass das Gerät diese Messungen dann auch über das Handy-Netz (Quad-Band) per SMS verschicken kann. Mit dem sehr stabilen Gehäuse und dem Anschluss für den Senor kann man damit also ohne Probleme Transporte mit LKWs oder Zügen von einem Standort aus überwachen. Mit einer SMS-Flat entstehen auch kaum zusätzliche Kosten. Die SIM-Karte darf keinen PIN haben, da man an dem Gerät keine PIN eingeben kann und die Programmierung rein über Commands erfolgt, die man dem Gerät per SMS schickt. Antworten tut das Gerät auch über SMS.
Ich habe das Gerät von der Switch GmbH bekommen, um mal heraus zu finden wie es funktioniert und wie man es in vorhandene Systeme integrieren kann.
Das Problem ist, erst einmal etwas über das Gerät heraus zu finden. Bei chinesischen Geräten ist das ja immer das Problem, dass man zwar viele Seiten findet wo man das Gerät kaufen kann, aber kaum Seiten vom Hersteller oder mit Anleitungen. Das ist auch hier so. Die Infos zu den SMS Commands ist schwer zu finden und auch nicht gerade übersichtlich oder gut erklärt.
ABER es gibt einen Vorteil und dieser ist die Android-App im Google Play-Store. Diese macht an sich nichts andere als Eingaben in die App per SMS zu verschicken. Antworten kommen per SMS und werden dort wieder eingetragen.
Also einfach das Gerät anschließen und die App installieren. Als erstes muss man das Gerät anmelden. Nummer eingeben, das default Passwort ist 1234 und den Rest nach belieben ausfüllen und speichern.
Ich wurde erst einmal mit SMS voll gespamt. Meistens dass die Report-Time auf 999 stehen würde. Also diese erst einmal auf 1h gestellt und schon hörte es auf. Man kann sich stündlich Reports der Messungen zusenden lassen oder Alarm SMS, falls die Tempartur- oder Luftfeuchtigkeit-Range über oder unter schritten wird.
Das Tolle ist, dass die SMS natürlich auch einfach im Handy vorliegen. Da kann man dann anhand der Zuordnungen von Befehl und Antwort sich die meistens Commands einfach so erarbeiten.
1234DT001
Das setzt die Report-Time auf 1h.
Als nächstes geht es nun darum SMS zu empfangen und deren Inhalt auszuwerten. Davon ist wohl das Empfangen das Problem, wobei ich noch einen UMTS-Stick rumliegen habe und es da wohl entsprechende Java-Libs gibt.
Damit kann man sich dann ein SMS-Gate bauen und die eingehenden SMS parsen und weiterleiten. Aber das kommt dann nächste Woche.
Eine der Eigenschaften des Microsoft Surface Pro 4 mit Core m3 CPU ist der doch sehr geringe Speicher in Form einer 128GB SSD. Im Vergleich zu den Speichergrößen von Android Tablet ist 128GB schon wirklich groß und scheint erst einmal ausreichend.
Der Unterschied zu einem Android-Tablet ist aber, dass man mit dem Surface richtig arbeitet und entsprechend viele und auch komplexe Programme installiert. Allein die Grundaustattung mit XAMP, Java, IDE, GITKraken und vielen kleinen Tools spreng leicht den Rahmen an dem was auf einem Android Tablet vom Benutzer an Daten und Apps zu finden ist. Beim Surface kommen dann noch die Daten des Benutzers hinzu.
Mit paar Bildern in RAW+JPEG und paar MP4s in FullHD von der DSLR wäre der noch freie Speicher der 128GB sehr schnell voll. Musik, Videos, ISOs oder VMs sind zu viel für die 128GB.
Zum Glück kann man eine Micro SD-Karte nachrüsten. Die Geschwindigkeit einer normalen SD-Karte ist natürlich nicht vergleichbar mit der SSD, aber für einfaches ablegen von Daten reicht eine einfache SD-Karte. Für etwas über 10 Euro bekommt man 64GB. Für mehr Geld würde man auch eine schnelle 128GB Karte bekommen, die dann auch schnell genug sind, um mal ein portables Programm darauf ablegen zu können ohne ewig lange Ladezeiten riskieren zu müssen.
Ich hatte den Surface Pen als etwas Bezeichnet was ein nettes Gimmick wäre, aber auch nicht so viel mehr.
Nun habe ich ihn zusammen mit FreshPaint doch einige Stunden verwendet und muss sagen, dass er für Zeichnungen doch ganz gut geeignet ist. Nicht wirklich zum Malen, aber für einfache kleine Skizzen-Zeichnungen ist es ein tollen Gerät.
Kann man damit ultra genau zeichnen? Nein. Sind die Druckstufen gut zu kontrollieren und genau zu verwenden? Nein.
Es gibt verschiedene Spitzen, aber die habe ich genau wie bei meinem alten Wacom Intuos 3 nicht ausprobiert.
Also revidiere ich ich meine Ausgabe zum Pen etwas: Für schnelle Skizzen mit den richtigen Programmen ist der Pen wirklich toll. Aber man sollte trotzdem nicht zu viel erwarten.
Beim Surface Pro 4 kann es auch mal passieren, dass man wenn man die Handfläche auf dem Display beim Zeichnen ablegt, damit doch mal einen diagonalen Strich auf das Canvas damit zeichnet. Aber mit Undo ist das Problem dann schnell wieder gelöst.
Wenn man HTPS hat möchte man auch, dass es immer verwendet wird, auch wenn die Leute über HTTP auf die Seite kommen. Mit RewriteCond ist das ganz einfach.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
Bald ist mal wieder Bastelzeit. CPU, Mainboard, RAM, Festplatte und Netzteil liegen breit. Heute kamen dann die Kühler an. Kühler für Socket 1366 Server-/Workstation-Mainboards zu bekommen ist nicht ganz so günstig wie für Desktop-PCs. Aber sie sind katzen-geprüft und von Supermicro. Es kann also nicht so viel schief gehen und mit BeQuiet-Lüftern drauf kühlen die dann auch gut.
Nur ein gutes und günstiges Gehäuse fehlt mir noch. Ich hätte gern ein Intergraph TDZ Gehäuse, aber die scheint es seit Jahren nicht mehr zu geben.
Wählt möglichst weit aus einander liegende Farben aus der Auswahl aller Farben, wobei die Enden (Schwarz und Weiß) ausgelassen werden. Da bei wenigen Farben nur Grautöne heraus kommen, werden bei weniger als 8 Farben die Abstände zwischen den Farben geringer als möglich gewählt.
function ColorGeneratorService(){
this.generateColorList = function(neededColorCount){
var minColorsfactor = 1;
if(neededColorCount < 8){
minColorsfactor = 3;
}
var result = [];
var end = parseInt(0xFFFFFF);
var step = Math.round(end / ((neededColorCount * minColorsfactor) + 1));
for(var i = 1; i <= neededColorCount; i++){
result[result.length] = "#"+(step * (i * minColorsfactor)).toString(16);
}
return result;
};
}
Ich bin jetzt auch mit MP4toGIF.com auf meinen Server bei netcup umgezogen. Einer der Hauptgründe von dem Hostingpacket von 1&1 auf einen eigenen Server umzuziehen war neben den günstigeren Betriebskosten für Server und Domains auch die Möglichkeit SSL-Zertifikate von Let's Encrypt verwenden zu können. Also keine 2,99 mehr pro Domain, um https nutzen zu können.
Let's Encrypt ist auch sehr einfach zu verwenden. Hier ist eine Anleitung für Ubuntu 16.04 LTS.
Zu erst, um nicht erst in kryptische Fehler zu laufen, aktivieren wir SSL für den Apache.
Dann startet der Client und man muss den Anweisungen folgen. Bei mir brach er mitten drin ab weil 'sudo apache2ctl configtest'
einen Fehler meldete, der wohl auf das bei mir noch nicht aktive SSL-Module zurück zu führen war.
ABER es ist sehr einfach den Rest per Hand einzurichten.
Zuerst die conf-Datei in sites-available mit dem Zusatz "-ssl" doppeln. Also zum Beispiel mp4togif.conf in mp4togif-ssl.conf doppel.
Dann in der neuen Datei den Port von 80 auf 443 ändern und dies hier einfügen.
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mp4togif.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mp4togif.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mp4togif.com/fullchain.pem
Nun nur die site aktivieren mit
sudo a2ensite mp4togif-ssl
und den Apache neuladen
sudo service apache2 reload
und schon sind wir fertig und https sollte funktionieren.
Diese Übergabe an Werten ist auch im Zusammenspiel mit SVG sehr praktisch, weil man so Koordinaten nicht in den Objekten oder im Controller hinterlegen muss, sondern sie immer weiter durch reichen kann, um für jedes Level einen eigenen Ursprung definieren zu können.
einblenden: opacity 0 auf 1
von links: margin-left 100% auf 0%
von-rechts: margin-right 100% auf 0%
wachsen lassen: scale(0) auf scale(1)
schrumpfen lassen: scale(2) auf scale(1)
Wenn man die URL-Parameter mit AngularJS auslesen möchte, kann man dies
sehr einfach mit dem $location-Service machen. Wichtig ist nur, dass man vorher den HTML5-Modus aktiviert.