Blog: Latest Entries (15):


Old-Shit-Releases: cJS

Ich hab so viel liegen, was ich nie weiter entwickeln werde, aber doch verwendet habe und was gut funktioniert. Teilweise auch immer noch gut funktioniert.

Teil 1: cJS

Das kleine JavaScript Framework, mit dem genau so Controller entwickeln konnte wie mit JavaFX.. es was fast eine 1:1-Kopie. MP4toGIF.com nutzt es und es läuft gut. Es hat kein bidirectional-Binding wie Angular. Am Ende wurde eine Lib für AngularJS dafür, die ich auch oft verwendet habe. Das eigene Framework habe ich nie weiter entwickelt, dabei konnte man Controller ondemand per require.js nachladen und so lustige Dinge. Controller konnten Controller anhand des Namens laden.. wie Services in Symfony..

letzte Version und Beispiele.

Macht damit was ihr wollt :-)

bbcode-image


bbcode-image

Retrogaming: 112in1 Mega Drive Modul

Nachdem ich mich schon mit der Slim Station irgendwas und dem Famicom 500in1 Module aus einander gesetzt habe, habe ich mir dann doch mal ein entsprechendes 112in1 Modul für den Mega Drive geholt. Bei den Famicom Spielen, gab es an sich ein großes Problem: Es fehlten viele Mario und alle Zelda Spiele. Wärend im 500in1 Modul zu meinem Erstaunen alle Turtles Spiele und neben dem obligatorischen Contra 1 auch Probotector zu finden waren, hat das Sega Modul alle wichtigen Serien, die man beim Mega Drive erwarten würde. Sonic, Golden Axe, Streets Of Rage, etc. Es sind kaum Disney Spiele dabei (wobei an sich nur Alladin einen wirklichen Verlust darstellt). Auch andere EU und NA Spiele, die man von früher kannte, fehlen. Im Vergleich mit den Famicom Sammlungen sind aber wenigstens die japanischen Serien vorhanden und vollständig.

bbcode-image


bbcode-image


Auch weil eben alles eher auf die japanischen Spiele konzentriert ist, ergänzt das Modul eine vorhandene Sammlung eher als Spiele darin zu doppeln. Der absolute Vorteil ist aber auch, dass das Modul mit den japanischen Versionen ohne Adapter direkt in einem PAL-Mega Drive funktioniert. Während ich sonst für "TMNT: Return od the Shredder" einen Adapter gebraucht hätte (der auch irgendwo rum liegt) kann ich es jetzt einfach so spielen ohne lange suchen oder DIP-Schalter am Adapter umstellen zu müssen.

bbcode-image


Es finden sich keine seltsamen Rip-Offs und Nachbauten von Mobile-Games auf dem Modul. Also die Zusammenstellung ist sehr viel Hochwertiger als bei den Famicom Spielen (und es wirkt nicht nur so weil es eben 16Bit Spiele sind).

Die eigentliche Frage ist, ob es mit den Sega Mega Drive Flashback HD von Media-Markt oder Amazon bei der
Spiele-Auswahl mithalten kann.

Was hat nur die Konsole, was toll ist:
- Columns
- Dr. Robotnik’s Mean Bean Machine
- Kid Chameleon
- Mortal Kombat (Serie, Teil 3 gibt es auch im Modul)
- Phantasy Star (Serie)
- Sonic 3D Blast
- Sonic Spinball
- Virtua Fighter II

Was hat nur das Modul, was toll ist:
- Arcus Odyssey
- Batman (Serie)
- Contra Hardcorps
- Double Dragon (Serie)
- Flashback
- Hokuto no Ken/Fist of the North Star
- Monster World IV (JP + Region-Lock)
- MUSHA (JP)
- Rocket Knight Adventures (Serie PAL)
- Streets Of Rage (Serie)
- True Lies
- Turtles: Return Of The Shredder

Disney Spiele fehlen auch bei der Konsole und die Konsole enthält einige Master System Game Gear Spiele und paar undefinierte (China?) Ergüsse, die eher an die schlechten Spiele in den Famicom Sammlungen erinnern.

Wer schon einem Mega Drive besitzt, ist gefühlt mit dem Modul besser dran. Günstiger und eben nur ein Modul und nicht noch eine Konsole. Viele der fehlenden Spiele bekommt man günstig gebraucht oder man hat sie schon. Bei RPGs ist natürlich die Sprache wichtig! Da muss man dann von Fall zu Fall genauer gucken. Monster World IV gibt es dort nur auf JP.
Und manche Spiele wie auch Monster World IV haben noch ein Region-Lock, wobei das für PAL-Regionen bei dem Modul kaum ein Problem ist. NTSC-Regionen sind da eher benachteiligt.

Eine vollständige Liste mit den Spielen und Eigenarten findet man hier.

bbcode-image
Comix Zone

bbcode-image
Contra: The Hardcorps

bbcode-image
Golden Axe

bbcode-image
Tiles Mahjong


bbcode-image
Rocket Night Adventures

bbcode-image
TMNT: Return of the Shredder

bbcode-image
True Lies

bbcode-image
True Lies

Shopware: Plugin-News KW20

Landingpages und Hersteller in der Suche:
Man kann die beiden Resultsets anhand der Sortierung gemischt darstellen und nicht mehr nur Hersteller hinter oder vor den Landingpages. Auch funktionieren die keyup und keydown JavaScript-Events wieder, wie sie sollen.

Eigenschaften im Listing:
Hat nun auch eine Sortiernug bekommen und befindet sich momentan in den letzten Tests.

Globale Kundendaten:
"{$customer_is_newsletter_receiver}" ist dazu bekommen. Damit kann gezielter den Newsletter bewerben und man schlägt ihm nicht jemanden vor, der ihn schon abonniert hat.

Prozentzahlen im Discout-Badge:
Hat verschiedene Rundungsmethoden und die Ausgabe das Dezimalzahl erhalten.

Automatischer XML Order-Export:
Prüfung ob das Zielverzeichnis überhaupt für Shopware schreibbar ist. Befindet sich noch im Test.

Hier findet ihr alle meine Shopware-Plugins!

Der gemeine Office-PC

Das ist eher ein kleiner Grundlagen-Artikel zu PCs, also erzählt wenig neues und eher für "Noobs" und IT-Entscheider (Entschuldigung... das musste sein:-) ) geeignet.

Der Standard-Office PC beschreibt an sich den PC, der an Büro- und allen anderen Arbeitsplätzen verwendet, wird wo keine spezialisierten Aufgaben (Programmieren, CAD, Grafik und Video) erledigt werden. An diesen Arbeitsplätzen werden Daten erfasst, verarbeitet und angesehen/gesucht. Auch Kommunikation mit Kunden und Partnern ist dort oft ein wichtiger Punkt. Als Beispiel nehmen wir mal die Personalabteilung, Banken, Ämter und Buchhaltung. Es werden meisten Programme wie Word, Excel, Email und eine Fachanwendung wie ein ERP/CRM/etc verwendet (heute oft als Cloud-Anwendung).

Das sind alles Anwendungen, die nicht viel Leistung brauchen und die auch schon 1993 ganz ähnlich existierten. Damals waren es oft Siemens Nixdorf Desktop PC mit diesen seltsamen Tastaturen oder IBM PS/2 Modelle.

Wichtig hierbei waren oft nicht die Leistungsdaten sondern das Drumherum:
* verbraucht wenig Platz auf dem Schreibtisch (Schreibtische müssen also nicht angepasst/erneuert werden)
* sie sollten leise sein
* die Verkabelung sollte gering bleiben und möglichst nach hinten weg gehen
* Speichermedien sollten genutzt werden können ohne sich groß bewegen zu müssen (Netzwerk gab es aber meistens schon)

Also waren es meiste sehr flache Rechner (man konnte so den Monitor drauf stellen und sparte Platz) mit "ausreichend" leistungsstarken Komponenten, die im Normalbetrieb keine bis wenig Kühlung benötigten und man eine Diskette/USB-Stick zum Datenaustausch benutzen konnte ohne sich unter den Schreibtisch bücken zu müssen und nur den Arm ausstrecken musste.

Bis auf den Umstand, dass man heute schon sehr oft 2 Monitore hat, sind die Anforderungen gleich geblieben. Hinzukommt bei IP-Telefonie, dass das Headset ohne lange Kabel anschließen lässt und sich nicht unter dem Schreibttisch in den anderen Kabeln verfängt. Wenn man noch ein separates Telefongerät hat kann man das auch super auf dem PC abstellen, weil es mit 2 Monitoren doof ist, wenn einer höher steht
als der andere.

Als Beispiel nehmen wir uns mal einen HP EliteDesk 800 G1 (ultraslim). Er hat alles was man braucht in einem sehr kompakten System integriert.

bbcode-image


bbcode-image


* Gigabit LAN
* Audio (Back und Front)
* VGA + 2x Displayport (Displayport weil man dort einfach alles mit Adaptern anschließen kann)
* USB 2.0 und 3.0.. 2.0 für Keyboard und Maus, 3.0 für USB-Stick und ext Festplatten (Back und Front)
* PS/2 Anschlüsse für Maus und Keyboard... einmal gibt es viele alte Tastaturen, die man weiter verwenden und auch viele Geräte wie Smartcard-Reader und Barcode-Scanner können weiter verwendet werden, weil sich ein Update auf ein USB-Gerät mit selben Funktionsumfang an sich nicht lohnen würde

Intern ist alles auch sehr einfach aufgebaut und wenig auf Aufrüsten ausgelegt (bis auf eine Ausnahme!)

bbcode-image


* CPU (i3 bis i5 reichen ja für alles)
* 2x SO-DIMM (4GB-16GB reichen für alle Aufgaben, wer mehr braucht, bekommt eine Workstation)
* 1x SATA-Einschub für Festplatten und SSDs
* 1x SATA + Strom für ein DVD-Laufwerk
* 1x PCIe (Mini) für WLAN

Aber auch:

bbcode-image


1x MXM 3.0 für eine zusätzliche Grafikkarte wie sie in Gaming-Notebooks verbaut werden (eine Radeon HD4650 kann dort verbaut werden)

Und das Gehäuse lässt sich ohne Werkzeug mit nur einer Schraube öffnen.

Am Ende hat man ein System über das man nicht viel nachdenken muss, weil alles nötige hat, sich etwas aufrüsten lässt und mit seinen kompakten Massen immer irgendwo einen Platz auf dem Schreibtisch findet. Gebraucht sind diese PC auch in größeren Stückzahlen sehr günstig zu bekommen und bieten eine gute Basis für günstige Büro-Arbeitsplätze für die alltägliche Arbeit.

Don't Be Smart!


Don't Be Smart!


Es gibt viele echt super smarte Lösungen. Nur sind viele davon leider so smart, dass man sich echt lange damit beschäftigen muss, um überhaupt zu verstehen warum diese smart sind. Ich habe selbst solche geschrieben und viele davon gesehen.

Leider ist die Laufzeit meistens kein so wichtiger Faktor, als dass man für ein paar wenige ms in kauf nehmen sollte, dass man 2 Tage braucht, um 3 Zeilen Code anzupassen und fehlerfrei wieder zum laufen zu bekommen. Simpler Code ist schneller und einfacher zu warten und oft kommt mit der Einfachheit
auch die Performance.


Don't Be Smart! Keep It Simple!


und


Keep It Simple! Keep It Fast!


Um die meisten Probleme zu lösen muss man nicht besonders smart sein. Man muss das Problem nur so lange auf seine Grundlagen herunterbrechen bis es simple wird. Denn zu Meist erscheint ein Problem nur kompliziert und am Ende ist es genau so ein normales und primitives Problem, wie alle anderen auch. Bei Problemen, bei denen das nicht funktioniert sind oft im Ansatz schon falsch oder basieren auf einem anderen nicht verstandenen Problem, das genauer erforscht werden sollte.

Shopware: Plugin-News KW19

Eigenschaften im Listing:
Version 1.8 wurde released. Fixes für Sprachshops und eine hübschere Tabellen-Darstellung ist nun enthalten. Sieht im Listing gerade bei der 1-spaltigen Darstellung ganz gut aus.

Rabatt in echten Zahlen:
Das Plugin habe ich einfach dazwischen geschoben, weil ich wissen wollte ob es einfach zu realisieren ist und mir die Idee gefiel. Im Store wohl dann ab morgen oder übermorgen.

bbcode-image

Shopware: Plugin Planungen

bbcode-image


Kunden Registrierung verhindern:

Das Plugin bekommt eine Einstellung, dass Preise erst nach einem Login (oder mit Cookie) angezeigt werden. Ein Event und abstrakter Subscriber für Kundenabhängige Preismanipulationen ist in Arbeit.

Eigenschaften im Listing:

Eine Darstellung (auch nur als Smarty-Variable) im Artikel-Detail kommt hin zu und eine einfacher Tabellen-Darstellung werde ich auch noch einbauen (nur Grid-Linien oder so).

X Kunden haben gekauft:

Das Plugin zeigt an wie viele Kunden einen Artikel in einer bestimmten Zeitspanne gekauft haben und markiert diese im Listing als "HOT-Deal". Plugin ist fertig und ich muss nur noch Screenshots und so anfertigen.

Rabatt für Newsletter-Abonnenten:

Da arbeite ich momentan dran und ein Konzept und ein halber Prototyp existieren schon. Da Shopware nur einen Gutscheon pro Bestellung zulässt wird es über Discounts geregelt und nicht einfach automatisiert versuch einen Voucher-Code einzubringen.

QNAP TS-120: Mehr als nur ein NAS

Ich und NAS war immer ein schwieriges Thema. Eines von Buffalo mit 1TB Festplatte war mir viel zu laut. Ich habe die Festplatte dann in meinen PC eingebaut und den Rest des NAS entsorgt. Die NAS-Funktion der Fritzbox war ganz nett aber ich wollte keine Festplatte unter dem Schrank im Wohnzimmer haben. In der Wohnung war leider der Telefonanschluss nicht mit Arbeitszimmer und unter dem Bücherschrank war es immer extrem staubig. Also es dann mit dem Haus begann und ich die Idee hatte mit IP-Kameras den Gartenbereich zu überwachen, wurde das Thema NAS wieder aktuell. Ich hatte mir da verschiedene Lösungen überlegt:

- Billiger 19" Server
- Billiger HP Micro-Server
- ein NAS
- ein Rasberry Pi mit USB-Festplatte

Ich bestellte mir ein günstiges NAS aus China. Dieses mal eines, wo die Festplatte austauschbar war und das etwas mehr nach einem NAS aussah. Die UI war auch sehr viel besser als bei dem Buffalo NAS. Aber es war wirklich sehr laut (allein der Lüfter) und so wirklich toll fühlte es auch nicht an. Man merkte einfach den Preis und Updates und Patches konnte man da auch nicht erwarten.

Gehen wir ein paar Jahre zurück. Ich weiß nicht mehr wie ich darauf gekommen bin, aber irgendwann fand ich heraus, dass man bestimmte QNAP NAS als VM-Hosts verwenden konnte. Diese waren nicht günstig, aber brauchten an sich alles mit was eine kleine Firma brauchte.

- Netzwerk-Laufwerke
- VMs
- Backup-Lösungen

Vor so 4 Jahren kam es dann dazu, dass ich um Hilfe bei einer kleineren Firma gebieten wurde. Da schien ein QNAP-NAS perfekt zu passen. Die brauchten eben nur zentralen Speicher und Dinge wie eine zentrale Groupware, die nicht in der Cloud lief (wegen Datenschutzbedenken). Verbindung per VPN, um auf die Groupware zugreifen zu können, wäre nicht wirklich das Problem gewesen.
Damals hätte so ein NAS ca. 2000 Euro gekostet, das genug Festplatten- und Arbeitsspeicher für den Zweck gehabt hätte. Das war dann für die kleine Firma zu viel.

Dezember 2017. 10 PCs ein Server. Domain-Controller. Zentraler Speicher. Zuerst dachte ich man könnte eine VM mit Samba als Domain-Controller nutzen und auf so einem NAS laufen lassen, bis ich heraus fand, dass diese Größe von NAS's sogar einen entsprechenden Service schon mit brachte. Die Preise waren auch in der Zeit stark gefallen. Ein passendes NAS mit 2x 3GB und 4GB RAM kostete gerade mal etwas über 600 Euro. Bezahlbar und alles in einem.
Auch ganz praktisch an einer QNAP TS-253A ist auch die Größe, die ohne Probleme auf dem Boden eines 19" Schranks platz findet. USB 3.0, 2x 1GBit LAN, RAID.. Microphone-Anschlüsse für Karaoke (ohne wäre teurer gewesen).

Das NAS wurde gekauft und ich hatte endlich mal die Möglichkeit mit so einem System zu arbeiten. Fazit: Toll! UI ist super zu bedienen. Es ist leise und schnell. Netzwerkfreigaben
funktionieren natürlich sofort und problemlos. Der Domain-Controller funktionierte auch sofort, wobei ich etwas mit den Logon-Scripten zu kämpfen hatte bis die liefen. Man durfte kein ".bat" hinter schreiben. Der Rest ist wirklich einfach. Eine Domain anlegen, einen Domain-Admin anlegen ,paar Benutzer und es kann los gehen. PC mit Hilfe des Admin-Kontos in die Domain aufnehmen. Neustart und sich mit einem der Benutzer anmelden. Läuft und bringt kleinen Firmen sehr viel mehr Kontrolle (als PCs wo jeder als Admin drauf arbeitet).

Das Geld für eine TS-253A wollte ich privat dann doch nicht ausgeben. Aber es gibt günstigere gebrauchte NAS von QNAP wie die TS-120. Dieses hat nur einen HDD-Slot und einen 1GBit LAN-Anschluss. Aber auch USB 3.0 und sogar E-SATA. Als CPU ist eine ARM-CPU und keine x86 von Intel verbaut. Deswegen hat es wohl auch keine VM-Host Funktion, wobei es auch beim RAM eng werden würde. Leider fehlt da auch der Domain-Controller, den ich sonst doch gerne gehabt hätte.

bbcode-image


Wenn man sich aber mal durch die Funktionen und Zusatzdienste der dort installierten QTS-Version klickt, merkt man schnell, dass QNAP ein NAS auch eher als sehr kompakten Server sieht, als eine Festplatte mit LAN-Anschluss. QTS ist dabei ein wirkliches tolles System, dass schnell ist und trotz den ganzen Funktionen auch für denen übersichtlich erscheint, der vorher noch nie mit QTS zu tun hatte.

Auf dem Startbildschirm sind schon verschiedene Dienste wie ein eigens kleines Cloud-Storage-System zu sehen.

bbcode-image


Ich zeige hier mein paar Dienste, die wirklich praktisch sein können (ich aber auch nicht nicht wirklich verwendet habe). Wie oben schon erwähnt, fehlt mir etwas der Domain-Controller.
Eine ActiveDirector/Domain Integration als Client ist aber möglich, so dass man die Benutzer einer Windows Domain direkt im NAS nutzen kann und nicht alles doppelt pflegen muss. Aber es gibt auch einen LDAP-Server. Wie weit man damit kommt, habe ich noch nicht getestet, werde ich aber in den nächsten Monaten wohl mal ausprobieren.


bbcode-image


Wenn man eine einfache Groupware oder ein Wiki im Intranet laufen lassen möchte, braucht man an sich auch keine VMs. Denn das NAS bringt einen WebServer (sieht wie ein Apache aus), einen MySQL-Server und PHP mit. Ein Media-Wiki kann man auch sich direkt so als "App" installieren. Der Fall von vor 4 Jahren hätte sich also auch so lösen lassen ohne VM.

bbcode-image


bbcode-image


bbcode-image


Wer eine Java-Lösung einer PHP-Lösung vorzieht hat Glück, denn es kann sogar ein Tomcat installiert werden. Es fehlt node.js, aber mit Apache + PHP und Tomcat sollte 90% aller Webanwendungen darauf laufen lassen können.

bbcode-image


Performance... da würde ich nicht zu viel erwarten, aber sicher ist es für eine Firma mit so 10-15 Mitarbeitern, die dort Emails (Roundcube) checken und ihre Termine und Aufgaben verwalten ausreichend schnell. Mit DynDNS/fester IP und Port-Forwarding oder VPN, hat man eine kleine unbahängige Lösung. Ein VServer zu mieten ist aber da doch vielleicht die bessere Lösung, wenn man von extern Zugreifen möchte und keine wiederkehrenden Probleme mit Verbindungsausfällen der Internetverbindung hat.

Wegen den IP-Kameras überlege ich nochmal zu prüfen, ob die nicht die vom NAS mitgelieferte Lösung verwenden sollte. Ich müsste nochmal prüfen ob meine Kamera damit kompatibel ist und wie teuer kompatible Lösungen sind. Weil direkt die Kamera über das NAS steuern zu können ist natürlich sehr viel schöner, als nur eine Kamera per FTP Bilder und Videos auf einem NAS ablegen zu lassen. Da wäre wohl keine Lösung mit dabei Videos die älter als 1 Woche sind automatisch löschen zu lassen und ähnliches.

bbcode-image


Auch wollte ich noch mal Testen, ob ich eine Festplatte einfach per E-SATA anschließen kann und diese wie die interne dann verwaltet wird. Eine externe für Backups wäre nett, aber ich hätte doch gerne die Option mehr Festplatten nachrüsten zu können. QNAP bietet hier leider keine Erweiterungen an wie beim TS-253A an.

Am Ende ist QNAP zwar teurer als einfache NAS-Systeme, bietet aber auch ein sehr stabiles System mit vielen Funktionen und kann in kleineren Firmen ohne Probleme einen klassischen Server ersetzen. Ein klassischer Server wäre dabei zu meist auch teurer. Die Geräte ab 300 Euro (nur das Gehäuse) bieten schon wirklich und sind ihr Geld meinen kleinen Erfahrungen nach auch wert.
Leute die viel mit Video-Streaming arbeiten, sollten sich bestimmte Funktionen wie
DJ2 live mal ansehen. Bei Karaoke im kleinen Stil sollte man aber vielleicht doch erst einmal bei UltraStar bleiben.

Shopware: Neue Version Landingpages in Suche

Ich habe mein Plugin für die Einbindung von Landingpages in die Ajax-Suche geupdatet.

bbcode-image


Neu hinzu gekommen sind:

- Die Suche nach Herstellern (Banner oder Logo)
- Darstellung in einem Grid, um mehrere Banner noch übersichtlicher darstellen zu können (CSS3-Grid)
- Sortierung der Banner kann beeinflusst werden

bbcode-image


Mit Videos ganz oben und der Grid-Ansicht, kann man echt hübsche Dinge damit bauen.

Von einer Integration einer Suche für statischen Seiten, Blog-Artikel und Kategorien sehe ich momentan ab, da ich die Suche eher als Marketing-Werkzeug sehe als allgemeine Suche für Kunden-Angelegenheiten. Mit Produkten, Landingpages (kann man ja wie eine Kategorie verwenden) und Herstellern kann man verkaufen. Mit Blog.. naja.. irgendwie auch. Statische Seiten sind Hilfen und Informationen, die man braucht, wenn schon das Kaufinteresse da ist und da hilft dann auch ein strukturiertes Menü und ein guter Footer ( mit Strg + F).

Shopware: Statische Seiten umbenennen

Im normal Fall wird die SEO-URL einer statischen Seite über den Namen/description gebildet. Ändert man nun den Namen der Seite, ändert sich auch der Link und damit könnten vorhandene eingetragene Links plötzlich nicht mehr funktionieren.
Um das zu verhindern, ist es praktisch der Namen für die SEO-URL unabhängig vom Namen erzeugen zu können. Da helfen die SEO Einstellungen im Punkt "SEO-Urls Shopseiten Template". Wir brauchen noch ein Freitextfeld mit dem DB-Spaltennamen "seourl". Nun ändern wir das Template:


{if $site.attributes.core.seourl}{$site.attributes.core.seourl}{else}{$site.description}{/if}


Wenn also dort im neuen Feld etwas angegeben ist, wird dieses verwendet und ansonsten weiterhin der Name. Das hat den Vorteil, dass man nur die Seite anpassen muss, die man umbenennen möchte und nicht jede.

Alte Versionen sind wichtig

Ich war bei Shopware von meinem eigenen Verhalten ausgegangen. Updates waren schnell und machten bis auf einen RC nie Probleme. Die produktiven verhielten sich immer genau so.
Da ich jetzt immer auf der aktuellsten Version entwickelte und dann für den Versions-Branch sagen konnte, ob es Probleme geben könnte oder nicht, habe ich auch den Support einer Plugins irgendwann daran orientiert und z.B. den 5.2er Branch nicht mehr unterstützt. Ich war mir sicher, dass das Meiste da laufen würde, aber ich hatte keine Test-Umgebung für 5.2.x und ging davon aus, dass nach einem halben Jahr wohl die meisten auf die aktuellste Version geupdatet hätten.

Falsch! Es wird noch z.B. 5.2.21 verwendet und braucht neue Plugins. Interessant wäre hier mal, welche Versionen von Shopware wie weit noch verbreitet sind, damit man abschätzen kann, ob es sich lohnt noch dafür zu entwickeln.

Nun habe ich in meiner Shopware VM folgende Versionen installiert, um ausreichend Testen zu können:

- 5.2.21
- 5.2.27
- 5.3.7
- 5.4.2

Damit sollten sich alle wichtigen Versionen abdecken lassen und wenn jemand mit einer anderen Version Probleme hat, kann man das immer noch innerhalb von 15min installieren und dann mit der konkreten Version testen.

Ich habe also jetzt angefangen, meine Plugins nochmal mit alten Versionen zu testen und auch dann dafür freizugeben.

Und wenn man sich Shop mit Oxid 4.3, XTC 3.x oder manche noch anderen Lösungen anguckt, wäre selbst die erste 5.2er Version als Alt zu bezeichnen nicht ganz richtig. Die Shopware-Welt ist exxtrem schnelllebig.

SATIP und Streaming

Nachdem wir von Kabel auf Sat für das Fernsehen umgestiegen sind, musste auch wieder eine Streaminglösung her. Nachdem ersten Versuch mit einer reinen SATIP-Lösung wurde ich dann doch schnell auf den Boden der Tatsachen zurück geholt. So einfach wie es mit der Kabel-Lösung von AVM war wird es hier wohl nicht. SATIP wird irgendwie von ein paar kleinen wenigen Software-Lösungen unterstützt.
Einen extra Receiver zu kaufen wäre auch zu teuer gewesen. VLC bekam es nicht hin. eine Software konnte nur die HD-Sender darstellen und eine zweite bekam alles hin aber war extrem instabil.

Auch die Netzwerk-Verbindung war nicht einfach: LAN -> Powerline -> WLAN war instabil, LAN -> WLAN (an der Außenwand) war instabil, LAN -> WLAN (mit Kabel durch die Terrassentür) stabil.

bbcode-image


Aber SATIP ist gut wenn man damit in einen Server geht, wenn man aber direkt Clients bedienen möchte ist es echt nicht toll, weil die breite Unterstützung fehlt.

bbcode-image


Also wieder verkauft und in einen Triax TSS 400 Mk2, der auch direkt DLNA unterstützt. VLC auf dem PC: ok, Playstation 3: ok, VLC auf FireTV Stick Gen1: ok, VLC auf FireTV Stick Gen2: findet den Server nicht.

bbcode-image


Aber insgesamt läuft nun alles stabil und man könnte bis zu 4 Streams aufrüsten. Auch das Bearbeiten der Senderliste ist sehr einfach und braucht keinen Sendersuchlauf mehr. Man kann einfach eine XML-Datei downloaden, dort einen Eintrag mit Name, Frequenzen und Ids eintragen und nach dem erneuten Upload ist der neue oder die neuen Sender direkt im Netzwerk verfügbar. Per UPNP muss man auch den DLNA-Server nicht lange suchen, sondern er wird direkt von Windows, VLC, PS3, etc gefunden ohne eine IP angeben zu müssen.

Bei der Verkabelung muss im Sommer noch viel getan werden und das CAT6 Kabel kommt in die Erde und alles soll dann durch ein Kellerfenster gehen. Die Verkabelung mit der Sat-Antenne ist wie bei einem normalen Receiver nur eben bei mir auf kürzere Strecke. Mit einem Dual-LNB kann man zwei Streams bedienen, mit einem Quad-LNB wären es vier, es reicht also für einen kompletten Familienhaushalt.
Dabei können nicht gelegte Anschlüsse einfach frei bleiben und es sind keine Abschlusswiederstände oder so nötig.

Seit den letzten Änderungen am Netzwerk läuft der Server ununterbrochen seit 2 Monaten ohne Probleme. Falls mal ein Stream hängen bleibt oder Aussetzer hat hilft immer ein kurzer Senderwechsel und dann geht wieder alles. Solche Dinge sind aber bis jetzt nur mit der PC-Version des VLC aufgetretten (3.0 wurde noch nicht getestet, ich vermute aber dass die Version besser laufen wird).

Ich finde die Lösung mit dem Triax TSS 400 sehr empfehlen wird, wenn man entweder nur Kabel-LAN verwendet oder das WLAN dicht genug an den Rest heran bekommt. Dachböden sind kein Problem, Garagen sind da schon wirklich komplizierter. Und ein 1Gb Switch ist auch nie verkehrt zu haben, wenn da paar parallele Streams laufen sollen.

Nachtrag: Die kleinen Aussetzer ließen sich durch einen Wechsel auf einen AVM WLAN-Repeater beheben. AVM ist zwar nicht ganz so günstig, aber es funktioniert immer besser und stabiler als die günstigen Lösungen.

AVM Fritzbox mit UMTS-Fallback

Manchmal passiert, dass man oder der ISP was falsch machen und wenn alles ganz doof läuft muss man 2,5h warten bis man seinen neuen Aktivierungscode für das Kabel-Modem bekommt. Wie soll man diese Zeit überleben? Die Lösung ist eine SIM-Karte mit Guthaben und Internet-Option und ein UMTS-Stick (wie ich ihn mir für mein SMS2X-Projekt mal gekauft habe). Ich habe also die SIM-Karte in den XS P10 Stick gesteckt und diesen in den freien USB-Port der Fritzbox.

bbcode-image


Nun dauert es etwas bis das Gerät erkannt wird. Einfach warten... man hat ja sonst nichts zu tun. Wenn er erkannt wurde taucht unter "Internet" ein neuer Punkt "Mobilfunk" auf.

bbcode-image


Hier muss man nur die PIN eingeben und denn Netzanbieter auswählen. Warten. Fall es nicht klappt, die Fritzbox einfach nochmal neustarten (musste ich einmal machen).

bbcode-image


Dann sollte in der Übersicht die Internetverbindung über UMTS angezeigt werden. Ein 200Mbit/s Kabelanschluss ist bedeutend schneller, aber für ein Fallback reicht der Stick alle mal. Firmen sollten vielleicht mehr als 14 Euro in einen Stick investieren, um eine schnellere Lösung zu finden.

bbcode-image

Roccat Kone: Gut und schnell... kaputt

Man kann gegen die Kone Mäuse von Roccat wenig sagen. Sie liegen gut in der Hand, haben eine gute Größe und das Gewicht stimmt auch, so dass auch nach stundenlangen Arbeiten oder Spielen man keine Probleme oder Krämpfe in den Händen bekommt. Die Treibersoftware ist leicht zu bedienen und die LED-Beleuchtung ist zurückhaltend.
Gerade günstige Gamer-Mäuse neigen ja dazu sehr futuristisch auszusehen und stehen sich damit meistens mehr im Weg als Nutzen daraus zu ziehen. Alles ist super.. nur eine Sache ist nicht so toll.. und das ist die Geschichte wie man 3 Mäuse in 7 Jahren verschleißt und nun bei der 4. angekommen ist.

Leider haben andere Hersteller oft das Problem, dass man keine Klicks durch das Drücken des Mausrads nach Links oder Rechts durch führen kann oder wollen sehr viel mehr Geld für diese Mäuse haben.

Nach meistens 2 Jahren merkt man dann, dass das Ende der Maus näher rückt. Nach der 3. Maus bin ich auch nicht mehr bereit das als Einzelfall zu sehen, weil es bei jeder der Mäuse genau gleich ab lief und zwar immer 100%ig gleich und die Taster sich klar als Schwachstelle herausstellte.

Es fing immer damit an, dass bei Links-Klicks öfters mal ungewollt Doppelklicks ausgeführt werden. Nervig, aber geht meistens noch, auch wenn bei WoW ungewollte Doppelangriffe ausgelöst werden.
Aber es wird schlimmer mit den Tagen. Danach folgen meistens Probleme mit dem Mausrad. Wärend das Scrollen kein Problem zeigt, machen die Klicks Links oder Rechts Probleme durch sporadische Aussetzer.

Alle diese Probleme verschlimmern sich sich mit der Zeit.

Bei den ersten beiden Mäusen kam es dann innerhalb eines Monats dann zu kompletten Aussetzern der Maus inkl der USB-Verbindung. Bei der 3. Maus haben wir es garnicht so weit kommen lassen.
Ich hatte noch die erste Maus meiner Frau übernommen (Sie nutzt sie für Surfen, WoW, Diablo 3, etc und gerade bei WoW wurden dann auch alle Tasten belegt und verwendet). Bei mir gingen die Probleme an einem anderen PC weiter und auch bei der Arbeit habe ich die Maus dann einige Tage versucht zu verwenden, aber auch da zeigten sich die gleichen Probleme. Die Versuche bei mir nutzen auch nicht die Roccat Software sondern die generischen Maus-Treiber von Windows. Es war also ein Hardware Problem. Bei der 2. Maus konnte ich wieder die Probleme bestätigen.

bbcode-image


Also ist nun die 4. Roccat Kone, diesmal eine AIMO, die eine XTD ersetzte, dabei ihre Dienst in WoW zu tun und wir rechnen fest damit, das meine Frau sich in 2-3 Jahren die nächste Maus kaufen werden muss.

Falls jemand auch diese Probleme kennt, wäre es toll mal eine Bestätigung von 3. zu erhalten, wobei nach 4 Mäusen ich kaum noch glaube immer Pech gehabt zu haben bei den Tastern.

PS: meine alte Logitech RX300 ist jetzt 16 Jahre alt und funktioniert immer noch gut.

RecursiveFileSeeker Update

Eine kleine Klasse, die ich mal für ein kleines Projekt geschrieben hatte, das mein Bruder brauchte (Verarbeitung und Katalogisierung von mehren 10.000en RTF-Dokumenten). Die Klasse liest alle Dateien eines Verzeichnisses und die alle seiner Unterverzeichnisse ein.


package de.hannespries.commons.io;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class RecursiveFileSeeker {
public static List<File> list(File folder, List<File> result, boolean allowFolders) {
return list(folder, result, allowFolders, new ArrayList<>());
}

public static List<File> list(File folder, List<File> result, boolean allowFolders, List<String> excludeDirnames) {
try {
if (!folder.isDirectory()) {
return result;
}

File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory() && !excludeDirnames.contains(file.getName())) {
if (allowFolders) {
result.add(file);
}
if(!excludeDirnames.contains(file.getName())){
result = list(file, result, allowFolders, excludeDirnames);
}
} else {
result.add(file);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}

return result;
}
}

Older posts: