Blog: Latest Entries (15):


QNAP NAS und IP-Kamera

Nach einigen Versuchen mit einem billigen China NAS (langsam und laut), der NAS-Funktion der Fritzbox (die plötzlich die externe SSD nicht mehr erkannte) bin ich nun bei einer gebrauchten QNAP TS-120 gelandet. Eine der Hauptaufgaben des NAS sollte es ja sein Bilder und Videos einer oder mehrere Überwachungskameras zu speichern. Zusätzlich sollte es auch für andere Dinge dienen, wie Datenaustausch zwischen den PCs und so.

Die TS-120 kann viele Dinge der größeren und neueren NAS nicht. So kann sie weder als VM-Host dienen noch als Domain-Controller in Windows-Netzwerken eingesetzt werden (was schön gewesen wäre). Aber trotzdem ist sie den anderen Lösungen, die ich hatte, weit überlegen.

Die Einrichtung der IP-Kamera ging auch entsprechend einfach. Sie speichert über FTP und man kann über SMB dann auf die Daten zugreifen.

bbcode-image


bbcode-image


bbcode-image


bbcode-image


bbcode-image

Shopware: Steuerfreiheit und USt-IdNr

Wer sich schon mal bei Shopware damit auseinander setzen musste, wie die Einstellung "Deaktiviere Steuern wenn eine USt-IdNr. angegeben wurde" funktioniert, ist sicher schnell im Checkout-Controller und in der Methode isTaxFreeDelivery($userData) gelandet.
Leider ist diese Methode in einem Stil geschrieben, der sie meiner Meinung nach extrem schwer lesbar macht. Die wieder negierten emptys und vielen return sorgen dafür, dass man den dahinter steckten logischen Ausdruck nur schwer erkennt, wobei der an sich ziemlich einfach ist.
Alles ist wie man man erwartet nur das bei fehlender VatID in der Shipping-Address auch die Billing-Address "einspringen" kann, muss man sich mehrmals durch den Kopf gehen lassen.

Ich habe die Methode noch mal in für mich besser lesbarer Form nieder geschrieben:


$shippingCountryTaxFree = !empty($userData['additional']['countryShipping']['taxfree']);
$shippingCountryTaxFreeVatID = !empty($userData['additional']['countryShipping']['taxfree_ustid']);
$billingCountryTaxFreeVatID = !empty($userData['additional']['country']['taxfree_ustid']);

$shippingVatID = !empty($userData['shippingaddress']['ustid'];
$billingVatID = !empty($userData['billingaddress']['ustid'];

return $shippingCountryTaxFree
||
($shippingCountryTaxFreeVatID &&
(
(!$shippingVatID && billingVatID && billingCountryTaxFreeVatID)
||
$shippingVatID
)
);


Die Logik stammt aus der Version 5.3.5

Shopware: Batch-Params

So sehen die Params von einem Article-Batch (3 Artikel) für die Article-API aus:


{
"id": false,
"subId": false,
"version": 1,
"useNumberAsId": "true",
"module": "api",
"controller": "articles",
"action": "index",
"0": {

},
"1": {

},
"2": {

}
}


Int-Index und selbst ein Array, dadurch ist ein einzelner Artikel darin zu erkennen. Id gibt es in den Params direkt auch noch, also ist das kein Indikator für eine Batch-Request.

Shopware: Logs und eckige Klammern


[2018-01-09 13:26:18] plugin.WARNING: SW001: price[EK] should be checked, sell for 1041.18, purchase for 2380 by demo [] {"uid":"5e860d0"}
[2018-01-09 13:27:58] plugin.WARNING: SW002: price(EK) should be checked, sell for 8.40, purchase for 59.5 by demo. [] {"uid":"075a3b6"}


Die obere Zeile kann im Shopware Backend nicht angezeigt werden. Die untere schon. Also sollte man mit eckigen Klammern in Log-Messages aufpassen.

Ist mir beim Testen mit 5.3.5 aufgefallen.

Shopware: Bestellen ohne AGB-Bestätigung

Ob in speziellen Shop, POS-Systemen, Shops für das Beschaffungswesen in Firmen oder Entwicklunger-Shops manchmal ist es entweder unnötig oder
nervig immer bei jeder Bestellung die AGB-checkbox anklicken zu müssen. Aber in den Grundeinstellungen gibt es unter Storefront / Bestellabschluss
keine Option das abzustellen... weil es ganz wo anders zu finden ist.

bbcode-image


Warum es da ist, erschließt sich mir nicht auf die schnelle, aber es gibt diese Option.

Letsencrypt neu anlegen

Weil es ja Probleme mit TLS-SNI-01 gibt, kann man auch einfach eine Domain neu installieren. Dann wird ein neuer Eintrag mit dem Postfix 0001 angelegt.


sudo apache2ctl stop
sudo letsencrypt --authenticator standalone --installer apache -d mp4togif.com -d www.mp4togif.com
sudo apache2ctl start


Aber ich werde nochmal warten, ob sich das Problem nicht löst und TLs-SNI-01 wieder aktiviert wird.

Shopware 5.3.5

Das wären so für mich die Highlights, warum man schnell auf Shopware 5.3.5 updaten sollte. Gerade die eigene Email Adresse für Fehlermails ist echt praktisch, besonders wenn man wieder Bots Formulare ausfüllen und X-CSRF Fehler auslösen.


SW-18075 - Es ist nun möglich, Fehlermails an eine separate Email Adresse zu verschicken.
SW-18510 - Fügt den API Endpunkt /users hinzu, welcher es ermöglicht Backend Benutzer über die API zu verwalten (larsbo).
SW-19404 - Ändern der Erstellung der Cronjobs, um aktive Cronjobs über die 'cronjob.xml' erstellen zu können (t2oh4e).

Einfaches Software-Deployment auf Clients

Da alles andere irgendwie zu groß oder zu teuer ist, habe ich mir mal was einfaches kleines gebaut. Es braucht zwar einen Client als Service auf dem PC (oder starten mit Admin-Rechten), aber dafür läuft alles über HTTP und der Client-PC muss nicht eingeschaltet sein, sondern prüft wenn er angeht oder jede Stunde einmal.

Momentan gibt es noch keine Unterscheidung der Betriebssysteme und eine gute Server-Umgebung fehlt auch. Aber man kann auch alles ganz plain und primitiv auf dem Server ablegen ohne eine extra Software.

Mal gucken was daraus wird. Aber gerade weil es alles so einfach und klein ist, sehe ich da doch etwas Potential, wenn dann eine Server-Software dafür existiert wird.

bbcode-image


bbcode-image

SAT-IP: Triax TSS400 und RTL plus

RTL plus liegt nicht in der voreingestellten Senderliste. Aber man kann den Sender ganz einfach hinzufügen, ohne Sendersuchlauf oder ähnliches.

Man muss nur die DLNA Senderliste (eine XML) per Hand anpassen.


<channel number="296">
<tuneType>DVB-S</tuneType>
<modulation>QPSK</modulation>
<visible>true</visible>
<type>tv</type>
<name>RTL PLUS</name>
<freq>12188</freq>
<pol>h</pol>
<sr>27500</sr>
<src>1</src>
<pids>0,41,70,137,168</pids>
</channel>

Shopware: Wenn das Update nicht starten will

Wenn beim Versuch Shopware zu updaten, der Prozess-Dialog ewig läuft und dann irgendwann das Backenend einfach neu lädt, kann es am media/ Verzeichnis liegen. Ich hab, als das Problem bei meinem lokalen Entwickler-Shop auftrat erst einmal alle leeren Verzeichnisse entfernt mit


sudo find media/ -type d -empty -delete


Dann noch mal die Rechte für die Dateien neu gesetzt (wegen über SCP hochgeladene Plugins oder so) und nachdem das Backend zwei mal neugeladen wurde, lief das Update sofort und ohne Probleme an. Hat mich zwar einige Stunden gekostet, bis alles soweit war, aber endlich wieder Updaten zu können ist es auch wert.

bbcode-image

Ich und Notepad++

Ich hatte viele Texteditor in den letzten 12 Jahren... Der Windows Editor, Phase 5, Textmate, EmEditor, Geany, Atom und Notepad++. Aber am Ende bin ich nur mit Notepad++ glücklich. Einfach schliessen und alles ist wieder da ohne dass man es speichern musste. Hab ich bei Atom nicht hinbekommen. Da klappte es nur immer für den ersten Tab alle anderen gingen verloren.

Jetzt bin ich sogar so weit gegangen und hab mir Notepad++ unter Linux installiert.. ich bin damit sehr viel schneller als mit Geany. Find & Replace funktioniert da irgendwie besser, schneller und einfacher als bei Geany.

bbcode-image


Oculus Rift läßt Rechner einfrieren

Wenn man beim Einrichten der Oculus Rift an dem Punkt wo man die Geräte anschließen soll das Problem hat, dass der Rechner einfriert, kann es gut an der HDMI-Verbindung liegen. Die Rift scheint nicht gut mit Displayport auf HDMI Adaptern klar zu kommen. Also einfach das Display mit dem Adapter anschließen und die Rift direkt verbinden. Das hat bei uns das Problem gelöst.

bbcode-image

Ein 6,5h Tag?

Als ich heute den Ort der Ruhe und Besinnung aufsuchte, kamen mir Gedanken zu einem modernen und auf Effizient ausgelegtes Arbeitszeitmodel. Es geht dabei darum die wirklich produktiven Zeiten eines Mitarbeiter möglich gut zu nutzen und die weniger produktiven Zeiten dafür zu nutzen, neue Energie für die anderen Zeiten zu sammeln.
Ich gehe dabei davon aus, dass ein Mitarbeiter nicht 8h mit voller Produktivität arbeiten kann, und diese Verteilung der produktiven Zeit der 80/20 Regel folgt. Also kann man auf die Zeit mit der 20% Leistung auch verzichten und sie dem Mitarbeiter schenken. Die dadurch gewonnene Zeit wird sich dann hoffentlich in mehr Motivation und Energie in der 80% Zeit niederschlagen.

Arbeitszeit: 7:30 - 18:00
Kernzeit: 10:00 - 15:00
Pausenzeiten: nach Gesetzlichen Regelungen oder länger (nach eigenem Ermessen)
Stunden pro Tag: 6,5h
Mögliche persönliche Überstunden: max 5 x 6,5h (übrige verfallen zum Monatsende)
Angeordnete Überstunden: verfallen nie
Urlaub: Halbe Tage sind möglich (Überlappende Zeiten (wenn man bei einem halben Tag nur 2h eher geht) werden als persönliche Überstunden angerechnet)

Homeoffice: 1 Tag pro Woche oder zusätzliche nach Absprache (wegen Handwerkern, kranken Kindern und so...)


Zeiten werden immer gestempelt und auch die Sekunde genau erfasst. Zeiterfassungen für Projekte erfolgt außerhalb und zusätzlich zur normalen Arbeitszeiterfassung.

Ich glaube es könnte so funktionieren, ohne groß produktive Arbeitszeit einbüßen zu müssen. Dafür dann aber mit mehr Leistung der Mitarbeiter in der kürzeren Zeit.

Der nächste Schritt wäre den Overhead zu minimieren, damit man die kurze Zeit besser ausnutzen kann.

Shopware-Plugin: Unerwartete Preisänderungen Warnungen

Mein neues Plugin ist online. Es kann warnen, wenn sich der Preis der eines Artikels um mehr als X% in einem bestimmten Zeitraum (letzte Änderung, 1 Tag, 7 Tage, 30 Tage) ändert. Es kann auch eine Email verschicken oder den Artikel direkt deaktivieren.
Auch kann das Plugin mein anderes Plugin ersetzen und auch 0,00-Preise reagieren.

bbcode-image

Older posts:

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