Blog: Latest Entries (15):



QNAP TS120: Speicher erweitern

Eine QNAP TurboStation 120 hat neben der fehlenden Virtualisierung und dem fehlenden Domain Controller nur ein Problem: Es passt nur eine Festplatte rein.
Aber im Gegensatz zu vielen anderen NAS-Systemen hat die TS120 sowohl USB 3.0 als auch einen eSATA-Anschluss. Ich wollte also mal wissen wie kostengünstig ich mein NAS mit einer doch nicht ganz so großen 600GB-Festplatte um Speicher erweitern kann.

Ich habe eine sehr günstiges eSATA-Gehäuse gekauft (das alle Kabel und auch einen kleinen Schraubenzieher dabei hatte) und eine alte 500GB Notebook-HDD dort eingebaut.

bbcode-image


Ich habe dann die Festplatte im laufenden Betrieb angeschlossen und mich in der WebUI angemeldet. Die Festplatte wurde sofort erkannt.

bbcode-image


Ich konnte sie direkt als Freigabe-Ordner für andere Benutzer konfigurieren.

bbcode-image


bbcode-image


bbcode-image


Und auch unter Windows war die Festplatte sofort zu finden.

bbcode-image


Alles sehr einfach und funktioniert super. Man könnte also auch einfach ein 4x eSATA-Gehäuse mit 4x 2GB da ran hängen. Wobei mir die Idee das NAS und den Speicher zu trennen an sich auch ganz gut gefällt.

Shopware-Plugins: Bronze zertifiziert

Eines meiner Plugins hat jetzt eine Bronze-Zertifizierung. Das ist toll, dass besagt, das das Plugin öfters runter geladen und schon bewertet wurde. Wenn man das geschafft hat man die Zertifizierung aktivieren. Es soll viele Vorteile bringen und helfen das Plugin besser zu verkaufen.

Ich bin gespannt!

bbcode-image


In der Zwischenzeit wird mehr Zeit in ein andere Projekt und das XML-Export Plugin investiert bzw. so viel Zeit wie der Garten einen gerade übrig lässt.

Shopware-Plugin: Order XML-Export das Format anpassen

Die neue Version vom automatischen XML Order-Export, nutzt für openTrans2.1 XSLT und keinen PHP-Code mehr. Der Vorteil davon ist, dass so für jeden Anpassungen an der Ausgabe sehr viel einfacher werden. Man kopiert sich die vorhandene XSLT-Datei und kann die Kopie so anpassen wie man will. Im Plugin kann man die Datei dann angeben und diese anstelle der originalen XSLT-Datei verwenden.

Wenn man z.B. ein Attribute-Field zusätzlich als offiziellen openTRANS2.1 XML-Tag einbinden:

bbcode-image
Meine Datei


bbcode-image
Ohne Anpassung


bbcode-image
Mit eigener Anpassung


bbcode-image
Die neue Datei angeben und Ausgabeformat anpassen


Bremen 2018: Behind the scenes

Am 30.6. war wieder Oldtimer Really in Bremen. Diesmal hatte ich frühzeitig zwei Thinkpad T500 organisiert, falls es Probleme bei der Bereitstellung anderer Notebooks geben sollte. Die Software hatte ich seit dem letzten Jahr nicht mehr groß angefasst. Nur die aktuelle Version der Client-JAR zu finden brauchte etwas. Aber nachdem ich die ganz unverhofft im Projekt-Verzeichnis fand, lief dann alles ohne wieder ohne Probleme.

Wieder 5:00 los und.. KEIN REGEN!!!!!! Auch eine weitere Besonderheit kam hinzu. Das 2. Zeitfahren wurde mit einem anderen System gemessen und später sollten die Ergebnisse beider Systeme für das Gesamtergebnis kombiniert werden. Ein kleines PHP-Script lass alle Renn-Ergebnisse als CSV ein und wertete diese aus. Alle Fahrer die nicht alle 3. Zeitfahrten absolviert hatten.

Nach dem Tag hab ich mir vorgenommen, die Integration mit anderen Systemen zu verbessern. Auch die Clients könnten dann ihre Auswertungen nicht nur per REST-API übermitteln, sondern auch eine CSV generieren, die dann ausgelesen werden kann. Der Import wäre dann so flexibel, dass er auch CSV-Dateien anderer Systeme importieren könnte.

Ein anstrengender Tag, aber die Messungen liefen wirklich gut und es gab kaum Fehlmessungen, durch Fahrtzeuge die zu dicht am Messbereich parkten.

Wer also bei Rennen oder ähnlichen jemanden braucht, der die Zeitmessungen und Auswertungen übernimmt, kann sich vertrauensvoll an die Switch GmbH wenden... auch was Temperaturüberwachung angeht.
bbcode-image
Aufbauen


bbcode-image
Surface als Messstation, der Client läuft noch in Eclipse


bbcode-image


bbcode-image
SAAT RFID Reader und Bananen-Auto


bbcode-image


bbcode-image
Messdaten mit dem Server syncen


bbcode-image
In der Natur, aber mit Strom


bbcode-image
3 Rennen mit Kontrollrechnung per Hand

Diese ominöse Digitalisierung

Ich war mal wieder auf Kassenzone unterwegs und hab mir mal die Kommentare zu dem eskalierten Thema "Wie #verzichtbar sind Apotheken in Deutschland?" durch gelesen. Es kommt immer wieder der Begriff der Digitalisierung auf, der ja schon halb zu einem politischen Kampfbegriff geworden ist und Hoffnung und Angst der Menschen gleichermaßen umfasst.

Am Ende glaube ich persönlich nicht daran. Ich glaube nicht daran, dass jemand plötzlich die Eingebung hatte: "Machen wir doch ab jetzt alles digital... der Rest der Welt passt sich schon an". Was sind die beschworenen Folgen der Digitalisierung?

- Arbeitskräfte werden ersetzt
- Lokale Geschäfte schließen, weil der Handel ins Internet abwandert
- Lineares TV wird ersetzt
usw.

Irgendwo stand da (jedenfalls so ähnlich): Durch die Digitalisierung müsse der Mensch jetzt lernen, dass er seine Medikamente im Internet bestellen müsse und nicht mehr in der Apotheke um die Ecke bekommt. Das würde Menschen eben ein Umdenken abverlangen und auch Ängste hervorrufen.

Und genau hier sehe ich den Fehler! Nicht der Mensch/Kunde muss sich daran gewöhnen oder umdenken.. das Umdenken hat schon längst stattgefunden. Ladengeschäfte schließen nicht, weil die Digitalisierung den Menschen beigebracht hat im Internet zu kaufen, sondern die Digitalisierung setze ein, weil die Kunden immer mehr im Internet kauften und der Handel eine Strategie brauchte, um da hinterher zu kommen. Die Digitalisierung ist nicht der Anfang, die Digitalisierung der Versuch, dass der Kunde einen nicht total abhängt.

Pro7 bietet "The Orvell" nicht als Streaming-Angebot an, weil die Zuschauer lernen sollen es zu nutzen, sondern weil die Zuschauer es schon verlangen, dass ein Sender seine Inhalte so anbietet.

Es gibt mehr als genug Jobs, die ein Computersystem nicht erledigen kann. Da braucht man die Arbeitskräfte und nicht in Jobs, die so stupide (Computer sind trotz allem was man heute AI nennt noch immer strunz dumm) sind das selbst ein Computer sie erledigen kann. Ich brauche keinen Mitarbeiter der 100.000 Datensätze analysiert und verarbeitet, wenn der selbe Mitarbeiter, mit den Ergebnissen eine tolle PPT bauen kann und anderen die Interpretation der Daten näher bringen kann. Das eine ist wichtig und bringt einen weiter. Das andere ist nur eine nervige Arbeit, die die Grundlage des anderen ist.

Beim Handel überlebt alles, was bei zeitkritischen Dingen hilft. Wenn mit der Hammer oder die Bohrmaschine kaputt geht bei größeren Arbeiten, brauche ich schnell Ersatz. 15 Pakete Laminat kaufe ich nicht spontan und kann die im Internet bestellen. Wenn man die großen Dinge von den kleinen Dingen trennt und seine Vorort-Angebote richtig wählt, passt es auch.


Am Ende wurde durch diese "Digitalisierung" nichts verändert, es ist die gerade laufende Veränderung durch die Menschen/Kunden und keiner kann sie lenken. Sie geschieht einfach.

Defekte Fritzbox wechseln

Am 16.5.2018 fiel in Lübeck der Strom aus. Das war nicht so toll, aber es passiert eben mal. Nach einigen Stunden war auch alles wieder da. Nur als der Strom wieder kam, grillte es wohl das Kabel-Modem der Fritzbox.

bbcode-image


Nach viel hin und her mit der Vodafone-Hotline stand fest, dass die Fritzbox getauscht werden müsste. Der komische Vodafone Router lief wurde aber natürlich nicht ohne Grund gegen eine Fritzbox getauscht.
Der Service von Amazon bot auch direkt an die Fritzbox um zu tauschen.

Positiv war, dass es zuerst gar nicht aufgefallen war, dass die Fritzbox sich nicht mehr mit dem Kabelnetz verbinden konnte, weil der UMTS-Fallback super funktioniert. Aber auch nur bis das Guthaben da leer war und das ging relativ schnell.

Als erstes habe ich dann eine Kopie der Config gezogen. Ich wollte behalten:

- Telefoneinstellungen (2 Fritzphone) und Telefonbuch
- VPN und Benutzereinstellungen
- MyFritz Einrichtung
- IP-Zuweisungen zu den verschiedenen Netzwerkgeräten (NAS, Drucker, IP-Kameras, etc)
- WLan SSID und Schlüssel mit zu nehmen wäre auch nett, aber nicht ganz so wichtig

Da merkt man erst wie viele Daten und wie viel Arbeit in so einem Router steckt. Man kann natürlich alles neu einrichten, aber es kostet doch einige Stunden und die wollte ich mir gerne ersparen.

Also Config auf dem PC gespeichert. Dazu musste ich mit einem der Telefon einen Code bestätigen, so dass klar war, dass es ein lokales Backup der Daten war. Effektiv muss man sagen.

Dann 2 Tage mit dem Vodafone-Router überleben und dann war die neue Fritzbox da.

Wer jetzt glaubt, jetzt kommt ein ausführlicher Text, wie man wieder alles einrichtet und so, liegt leider Falsch. Anschließen, einloggen, Backup wieder einspielen.
Die Telefone hatten sich über DECT noch nicht wieder verbunden, aber mit der DECT-Taste etwa rumspielen, hat die Sicherheitscode-Abfrage auch irgendwie bestätigt.

Danach war wieder da:

- Internet
- Netzwerkgeräte
- VPN
- MyFritz
- Telefonbuch und Telefoneinstellungen
- WLan mit den alten Einstellungen (Repeater hat sich auch sofort wieder verbunden)

Nur die Hintergrundbilder der Telefone musste ich kurz nach mal hochladen.

Genau aus diesen Grund mag ich Fritzboxen. Sie können ganz viel, sind günstig, einfach zu bedienen und es funktioniert einfach alles ohne viel Rumgespiele.

Für die perfekte Fritzbox (gerade die ich bei kleinen Firmen installieren würde) fehlen nur ein paar eher exotische Dinge. Die perfekte Fritzbox hätte bei mir noch:

- 10GBE Switch (4 Ports reichen.. selbst ein 10GBE-Port zusätzlich zu den 1GBE-Ports wäre ausreichend)
- Load-Balancing (über externe DSL- oder Kabelmodem, verbunden über Ethernet)
- ein eingebauter Domain-Controller für Windows-Netzwerke (Profile auf USB-HDD oder externen NAS speicherbar)
- Einfache Traffic-Analyse (Homepages und Anwendungen nach Traffic aufgeschlüsselt. Wie viel geht über IP-Telefonie und wie viel über die Cloud-Groupware?)
- UND ein Ein-/Ausschalter :-)

Dann wäre echt alles Perfekt und auch 300 EUR wären dafür noch OK.

Ach ja ein Repeater mit PoE-Port wäre auch ganz nett.


Shopware: checkLicence() verwenden?

Die checkLicence()-Methode prüft, ob ein Plugin eine gültige Lizenz hat oder nicht. Dafür wird wiederum das Licence-Manager Plugin verwendet. Shopware selbst rät eher davon ab dieses zu verwenden. Sie meinen, dass ein Kunde schon keine Raubkopie verwenden möchte und ungern von Updates abgeschnitten wird.

Bei einigen Plugins sind die Updates nun wirklich minimal umgesetzt. Mal ein paar kleine Schönheitsfixes.

Warum gehe ich lieber das Risiko ein, dass man eine Test-Version länger als gedacht verwendet als zu viel Sicherheit einzubauen?

- Weil ich selbst weiß, dass Test-Zeiträume oft zu gering sind.
- Weil ich die Sicherheitsmaßnahmen von Shopware für ausreichend halten
- Weil meine Plugins im Namespace abzuändern. von der Arbeitszeit oft teurer wäre als es zu kaufen
- Weil ich nicht nur Fixes in Updates habe, sondern Updates bei mir oft auch Features nachliefern oder verbessern (erste Versionen waren oft nicht ansatzweise so umfangreich wie die momentanen Versionen)

Es ist wie mit dem Wasserzeichen auf mp4togif.com. Es nervt und man kann es relativ einfach und ohne viel Einschränkungen entfernen. Meine Plugins sind relativ günstig. Bekommen oft neue Features und ich versuche möglichst guten Support zu leisten.

Sollte sich nichts mehr verkaufen, würde ich auch nicht mehr weiter entwickeln.

Da das Preis/Leistung Verhältnis bei meinen Plugins, glaube ich, stimmt, bin ich auch relativ sicher, dass die Shopbetreiber bereit sind das Geld zu zahlen und weiterhin von der Weiterentwicklung partizipieren zu können. Besonders auch weil ich für jeden Verbesserungsvorschlag dankbar bin und diese auch gerne für Kunden umsetze.


PS: bald veröffentliche ich mal wieder eine aoop-Version, da dort in den letzten Tagen nach langer Zeit wieder mal was passiert ist und ein neues Projekt damit ansteht.. und nicht mit WordPress.. weil das zu unflexibel ist für den Zweck :-)

Neue Displays: Hübsch!!!!!

Ich war ja immer sehr mit meinem Fujitsu Monitor zufrieden. 1920x1200 und alle möglichen Anschlüsse.. eben ein Profimonitor, was man allein schon am Gewicht merkte. Wurde mir von meiner Frau vermacht, nachdem sie zusammen mit ihrem neuen PC auch zwei neue Displays bekam.

Aber ein 1600x1050 und ein 1920x1200 Monitor passen einfach nicht zusammen.

Also habe ich die notebookswieneu.de 20% WM-Aktion genutzt und mir 2 Thinkvision LT2423 gegönnt. Mit ~140 EUR für 2 FullHD 24" Displays wirklich ein gutes Geschäft gemacht und es sieht auch einfach auf dem Schreibtisch sehr viel besser aus.

bbcode-image

bbcode-image


Sollte Deutschland morgen nochmal gewinnen, kommen vielleicht dich noch mal eine oder zwei 2TB HDDs für die QNAP TS-120 dazu.. mal gucken.

* Wenn mehrere gleiche im Listing auftauchen.. das liegt an den verschiedenen Garantie-Laufzeiten

Shopware-Plugin: XML Automatic Order-Export 0.3.1

Es hat doch ein paar Tage länger gedauert, als gedacht und ich habe am Ende doch mehr geändert als ich zu Anfang wollte, aber ich habe bei dem Plugin jetzt ein besseres Gefühl als vorher. Es ist moderner und flexibler als die alte Version. Änderungen gehen auch viel schneller.

An openTRANS 1.0 hat sich garnichts geändert und wird wohl demnächst mal auf XSLT umgestellt. Bei openTRANS 2.1 hat sich mehr geändert. Zuvor fehlende Felder sind hinzu gekommen. Datum und Zeit der Bestellung ist nun getrennt vom Datum der Erzeugung des Dokuments.

Und das Wichtigste, was hinzu kam, ist, dass nun auch Updates auf Bestellungen exportiert werden. Der UDX.EDI-Block enthält dann die Information, ob es sich um ein CREATE UPDATE handelt. Wer den Export in eine Datei schreibt oder den Push-Client verwendet bekommt jetzt diese Informationen geliefert. Dateien haben nun einen Timestamp im Namen, so dass alle Änderungen linear exportiert werden können.

Wer eine alte Version verwendet sollte nicht einfach updaten, sondern erst einmal ausgiebig Testen!

bbcode-image


Wie schon gesagt, habe ich bei dem Plugin jetzt ein wirklich gutes Gefühl.

Version 0.3.1 sollte demnächst im Store verfügbar sein.


Datenschutz DSGVO Cookie-Overlay V.2

Mit der Version kann man nun auch Optout-Links erstellen, um eine Entscheidung zurück zu nehmen ohne den Browser-Storage leeren zu müssen (was ein normaler Besucher sicher nicht alleine hinbekommt).


<a href="#" cookie-optout-link>Doch keine Cookies!</a>



<div id="cookiequestion">
<style type="text/css">
#cookiequestion{
position: fixed;
text-align: center;
font-weight: bold;
left: 0;
bottom: 0;
border: 2px solid #BBB;
background-color: #DDD;
padding: 10px;
border-radius: 5px;
width: 100%;
}
</style>
<script type="text/javascript">
function cookieclose(val){
var storage = window.localStorage;
if(val && val > 0){
storage.setItem("cookiequestion_val", val);
}
else {
val = storage.getItem("cookiequestion_val");
}

if(val && val > 0){
document.getElementById("cookiequestion").style.display="none";

if(val > 1) {
var event = new Event('cookiequestion_clicked', {value: val, overlay: document.getElementById("cookiequestion")});
document.dispatchEvent(event);
//or do other things here
}
}

//create optional optout-links
var elements = document.querySelectorAll("[cookie-optout-link]");
var func = function(){
return function(){
cookieclose(1);
};
};
for(var i=0; i < elements.length; i++){
elements.addEventListener("click", func());
}
};

cookieclose(0);
</script>
<p>
Erlauben von Tracking/Cookies?
</p>
<p>
<button onclick="cookieclose(2);">ja</button>
<button onclick="cookieclose(1);">nein</button>
</p>
</div>

Von Underscore zu CamelCase

Manchmal muss man aus Datenbank Spaltennamen Getter und Setter Methodennamen generieren. Ein RegEx mal Callback-Function ist nicht immer die schnellste Lösung. Manchmal sind gute alte String-Functionen doch noch die Beste Lösung.


function convertToCamelCase($text){
$result = '';
$nextUp = false;
for($i = 0; $i < strlen($text); $i++){
$char = substr($text, $i, 1);
if($char == '_'){
$nextUp = true;
}
else if ($nextUp){
$result .= strtoupper($char);
}
else{
$result .= strtolower($char);
}
}
return $result;
}

Older posts:

Möchtest Du AdSense-Werbung erlauben und mir damit helfen die laufenden Kosten des Blogs tragen zu können?