Blog: Latest Entries (15):


Komplexität? - Gerne noch etwas mehr davon!

Ich bin über diesen Artikel bei Heise-Developer gestolpert und das Thema hat mich gleich gefesselt. Ich vertrete ja immer die Auffassung, dass Komplexität entweder auflösbar ist oder ein Symptom eines unerkannten Fehlers/Problems. Ich halte es auch für eine sehr deutsche Tugend Komplexität zu verklären. Über die Jahre bin ich bei verschiedenen Firmen, Personen und Situationen über sehr komplexe Probleme gestolpert, die aber meistens von den Verantwortlichen mehr mit Stolz gesehen werden, als ein Problem.

Die Aufgabe der IT wird dann immer darin gesehen, dass sie komplexe Probleme, die zu komplex für Menschen sind, handhabbar und bewältigbar zu machen. Dabei gilt auch in der IT, dass eine komplexe Lösung für ein komplexes Problem eine große Sammlung für Point-of-Failure's sind, bei denen die einzelnen Fehler auch wieder eine hohe Komplexität haben. In den meisten Fällen, wäre die IT besser damit beraten, ein Beispiel zu liefern, wie die IT helfen kann einen simpleren Prozess umzusetzen und damit die Effektivität enorm zu steigern.

Leider aber gibt es immer die typischen Ausreden:
- unser Geschäftsfeld ist eben sehr komplex
- es gibt keine Standard Fälle, die unsere nötigen Abläufe abbilden können
- unsere Firma ist eben etwas Besonders und lässt sich nicht vergleichen
- das ist über die Jahre so gewachsen und unser Erfolg gibt uns recht
- wir sind nicht einfach so eine Firma.. wir machen heben uns ab
- wir sind eben innovativ und den Standardlösungen voraus

Bei manchen sieht man sehr gut das Ursache und Begründung an sich nichts mit einander zu tun haben. Aber eindeutig ist, dass man meint sich durch Komplexität einen Mehrwert gegenüber Mitbewerbern herbei zureden versucht. Es wird so getan als müsse Komplexität mit Innovation, Qualität und Alleinstellung einher gehen. Hoch komplexe Fertigungsmethoden beeindrucken natürlich, aber es wird viel zu selten überlegt, ob es nicht viel beeindrucken würde für eine komplexe Aufgabe eine sehr einfache und kostensparende Lösung bieten zu können.

Automatisierung und Digitalisierung.. momentan große Buzz-Words. Firmen die schon immer versucht haben Komplexität zu bekämpfen und ihre Prozesse schlank und einfach zuhalten, haben kein Problem damit etwas bei sich zu automatisieren bzw sind meistens schon damit durch. Das sind auch Firmen bei denen die Mitarbeiter selbst bestrebt sind, stupide Arbeit loszuwerden und sich wirklich wichtigen Arbeiten mit ausreichend Zeit widmen zu können.

Gerade größere Firmen, die an Komplexität als Vorteil oder Aushängeschild festhalten, wundern sich immer, wenn sie von kleinen innovativen Firmen mit viel weniger Mitarbeitern, Geld und Bürokratie in kurzer Zeit überholt werden. Oft hält man dann dort an der Qualität fest, die mit simpleren Fertigungsmethoden oder Prozessen ja nicht gewährleistet werden könne. Manchmal stimmt es, aber ganz oft ist die höhere Qualität auch nur eingebildet und wird allein an den komplexen Prozessen wiederum fest gemacht. Also führt die Komplexität zu hoher Qualität, die man daran erkennt, dass die Komplexität hoch ist.... man dreht sich im Kreis.

Komplexität ist immer schlecht und es gibt keinen Grund an Komplexität fest zu halten. Wenn man Komplexität an einem Punkt nicht los wird, muss man entweder etwas mehr nachforschen und kann dadurch innovativ sein oder in Betracht ziehen, dass man etwas da einfach falsch macht und denn betroffenen Prozess noch mal auch mit Blick von Außen neu planen sollte.

Unnötig Komplex zu sein und zu denken ist 60er/70er Jahre Mentalität, die man möglichst schnell ablegen sollte. Aber dafür muss man Prozesse erfassen und bewerten, mit den Mitarbeitern vor Ort reden und planen, IT nicht als Problemlöser sehen sondern als neuen Weg, der neue Impulse und Ideen liefert. IT ist ein Werkzeug zur Bekämpfung von Komplexität und nicht eins um Komplexität beherrschbar zu machen.

Shopware: Variablen eines Plugins in eigenen Templates nutzen

Wenn man sich für Shopware ein Plugin kauft, kann es sein, dass man die Daten genau so vorfindet, wie man sie braucht, aber möchte das dort verwendete Template ersetzen oder die Daten in einem Template verwenden, das im Plugin noch gar nicht vorgesehen war.

Dafür kann man sich ein eigenes kleines Plugin schreiben. Das geht in 5 Minuten. Wir schreiben uns das Plugin TESTNotLoggedIn und blenden damit den Newsletter in der Footer Navigation aus.

Ins Verzeichnis TESTNotLoggedIn kommt die Datei TESTNotLoggedIn.php:

namespace TESTNotLoggedIn;

use Shopware\Components\Plugin;

class TESTNotLoggedIn extends Plugin{
public static function getSubscribedEvents()
{
return [
'Enlight_Controller_Action_PostDispatchSecure_Frontend' => 'addTemplateDir',
'Enlight_Controller_Action_PostDispatchSecure_Widgets' => 'addTemplateDir',
];
}

public function addTemplateDir(\Enlight_Controller_ActionEventArgs $args)
{
try {
$args->getSubject()->View()->addTemplateDir($this->getPath() . '/Resources/views/');
}
catch(\Exception $e){
//TODO
}
}
}


jetzt kommt das Verzeichnis Resources/views/ dazu und die Datei plugin.xml:

<?xml version="1.0" encoding="utf-8"?>
<plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/shopware/5.2/engine/Shopware/Components/Plugin/schema/plugin.xsd">
<label lang="de">TEST Not Logged In</label>
<label lang="en">TEST Not Logged In</label>

<version>0.1</version>
<link>https://www.hannespries.de</link>
<author>Hannes Pries</author>
<compatibility minVersion="5.2.0" />

<requiredPlugins>
<requiredPlugin pluginName="HPrGlobalCustomerData" minVersion="1.3"/>
</requiredPlugins>
</plugin>


Hier wird das Plugin, das wir erweitern wollen, angegeben. Ich verwendet das kostenlose "Globale Kunden Smarty-Variablen". Nun können wir einfach unsere Templates im views-Verzeichnis anlegen und vorhandene erweitern.

Als Beispiel kommt hier Resources/views/frontend/index/footer-navigation.tpl

{extends file="parent:frontend/index/footer-navigation.tpl"}

{block name="frontend_index_footer_column_newsletter"}
{if !$customer_loggedIn}
{$smarty.block.parent}
{/if}
{/block}


Damit ist das Plugin schon fertig und kann installiert werden. Der Newsletter Bereich im Footer ist nun nur sichtbar, wenn man eingelogged ist.

Das Plugin "Eigenschaften in Artikel-Listing" bietet z.B. auch an in der Detailseite die Daten nur als Smarty-Variable bereit zu stellen, damit man selbst direkt die Darstellung implementieren kann und nicht noch eine vorhandene unpassende anpassen oder entfernen und ersetzen muss.

Shopware-Plugins: Meine Plugins wechseln den Hersteller

Ich habe jetzt fast genau ein Jahr Shopware-Plugins programmiert und im Community-Store von Shopware angeboten. Es hat mir immer viel Spass gemacht und gerade der Kontakt mit den Kunden war oft sehr interessant. Da es aber über mein Nebengewerbe lief, war die Zeit, die ich dafür verwenden konnte schon sehr eingeschränkt und auch Marketing war nicht so einfach da mit unter zu bringen. Zusätzlich benötigte das eigene Haus immer mehr Zeit. Es ist schon ein riesiger Unterschied, ob man eine Mietwohnung hat oder ein eigenes Haus, was den Zeitbedarf angeht.

Daher hatte ich mich entschiedenen meine Nebentätigkeiten herunter zu fahren. In dem Zuge kam ich an den Punkt, wo mir klar wurde, dass weniger nichts bringt, sondern ich ganz aufhören muss.
Die laufenden Projekt wollte ich aber nicht so einfach wegwerfen, besonders weil ja auch Kunden darauf vertrauen, dass deren Plugins und andere Software weitergepflegt wird und Fixes erstellt werden.

Deswegen wechseln meine Plugins nun zur Windeit Software GmbH, was mir die Möglichkeit gibt, den Plugins auch die Zeit und Investionen zukommen zu lassen, die sie benötigen. Es ist also nur zum Vorteil aller, denn jetzt wird es geben:

- verbesserten Support
- besseres Marketing
- richtige Dokumentation (Videos?)
- Urlaubsvertretung
- alles noch professioneller

In der nächsten Zeit werden also alle Plugins umgestellt. Kunden werden einen neuen Namen und ein neues Logo sehen, aber der Rest bleibt gleich und alle Kaufe und Subscribtions laufenden unverändert weiter.



Und was werde ich jetzt machen? Haus, Garten und im Blog wird es wieder vermehrt um Development, Arbeit, Hardware-Projekte und kleine private Projekte gehen. Weniger Content, aber dafür etwas persönlicher wieder mit mehr Inhalt.
Wenn man ein eigenes Haus hat, hat man auch genug mit IT und Infrastruktur Themen zu tun.

Tipp: GitKraken



Das Programm was ich wirklich täglich sowohl bei der Arbeit als auch privat nutze ist GitKraken (und es ist kostenlos!). Es hat bei mir Sourcetree abgelöst und selbst einige CLI-Verfechter bei der Arbeit nutzen GitKraken nebenbei, weil das Mergen durch die gute Darstellung sehr viel sicherer wird. Wer sich schon mal ver-merged hat, sollte mal überlegen GitKraken dafür zu nutzen.

Axosoft an sich ist auch toll.. besser als JIRA!

Der 30 Euro PC - Wieviel Leistung für so wenig Geld

Wenn man heutzutage einen neuen PC kaufen will, merkt man schnell, dass die Zeit der großen PC-Verkäufe und Angebote vorbei sind. Das was man momentan bei den üblichen Verdächtigen Geschäften vor Ort findet, kann man oft an zwei Händen abzählen. Im Internet gibt natürlich alles, aber auch da sind die Modelle mit denen geworben wird, eher extremer Einheitsbrei. Man hat oft die Wahl zwischen einem Allrounder und einem Gamer-PC. Der normale PC hat einen kleinen schwarzen Tower mit i3 oder i5 und onboard Grafik. Der Gamer-PC hat einen größeren Tower mit viel Licht, i7 und einer mittleren Gaming-Grafikkarte und ist dabei immer viel zu teuer.

Oft braucht man aber gar keinen so leistungsfähigen PC. Alles was man neu kaufen kann ist überdimensioniert und viel zu teuer. Bei mir kam die Anforderung einen kleinen PC für das Schlafzimmer zu organisieren, damit man dort vernünftig Youtube gucken kann.
Warum ein PC und keinen Fire TV Stick oder ein andere Android-Gerät oder direkt einen Smart-TV? Ganz einfach: kleinere HDMI-Sticks sind langsam, Android-Geräte sind meistens wirklich umständlich zu bedienen und deren Apps langsam und unübersichtlich, ein neues TV-Gerät ist unnötig teuer.

Zum Glück gibt es im Internet ja noch Ebay und dort gibt es kleine, unscheinbare PCs für sehr geringe Preise. Einen relativ kompakten PC bekommt man dort schon für 30 Euro. Ich habe mich für einen Fujitsu Futro s900n entschieden.

bbcode-image


Natürlich ist die Hardware-Ausstattung jetzt nicht die Beste aber klang erst einmal brauchbar:

- AMD G-T44R 1,2 Ghz CPU
- 2GB DDR3 (max. 8GB)
- AMD/ATI Radeon HD 6250
- 1GB SSD (mSATA)
- 1x DVI + 1x DP
- USB 2.0 und 3.0 Anschlüsse
- 1GBit Ethernet

Was auffällt ist die sehr winzige SSD und das fehlende WLAN. Für den Einsatz als Media-Player muss also noch dazu bekommen:

- 32GB mSATA SSD
- USB WLan Stick

Was beides zum Glück sehr günstige Komponenten sind. Eine normale SATA SSD kann man in den PC sogar aus einbauen, wenn man sich ein passendes Adapterkabel für den Strom organisiert und bei der Halterung mit Klebeband behilft. Damit oder mit einem ESATA/USB3.0 HDD Gehäuse würde einem kleinen NAS auch nichts im Weg stehen und von der Leistung her würde der PC mit den kleinen bis mittleren Geräten von QNAP sicher noch mithalten können.
Als einen ThinClient kann man den PC natürlich auch verwenden... wenn man einen Terminal-Server hat. Ist ja der eigentliche Verwendungszweck und alles andere eigentlich die Ausnahme.

Unterstützt werden auf dem PC sowohl Linux als auf Windows. Beides ganz offiziell und an sich hängt es nur von der SSD ab, was man installieren kann. Ich würde wohl eines kleinen Linux gehen, da es dort alles gibt was ich brauche. Firefox oder Chrome für Youtube ist keine Problem. VLC für Sat-TV und DLNA ist auch bei beiden Systemen verfügbar. Es waren noch einfache Zeiten, als das OS noch irgendwie eine Rolle spielte. Heute ist es an sich egal ob man Windows oder Linux verwendet, wenn man nicht gerade Gamer ist.. oder Adobe-Software braucht.

Da ich leider keinen WLAN-Stick habe, bzw einen relativ alten nicht mehr finde, nehme ich erst einmal einen WLAN-Accesspoint. Der ist nicht schnellste aber für Youtube reicht der erst einmal.
Eine 32GB mSATA SSD habe ich noch von einem anderen gescheiterten Projekt (die SSD war dabei nicht das Problem, wie sich beim Test mit einem SATA-Adapter heraus stellte!).

Das vorinstallierte eLux-Linux auf der 1GB SSD hat zwar einen Firefox, aber der war nur in einer ESR 33 Version vorhanden und lies sich nicht wirklich einfach updaten. Die Version hatte noch keinen passenden Video-Codec für HTML5-Video dabei und Flash ist jetzt wirklich heutzutage keine Option mehr und auch das hätte ich erst einmal installieren müssen.

bbcode-image


Also schnell die 32GB SSD rein und einen Ubuntu 18.04 LTS Installations USB-Stick fertig gemacht.

bbcode-image
1GB SSD


bbcode-image
32GB SSD


Der PC bootet direkt das Bootmenü vom USB-Stick und startete Ubuntu. Die Installation lief langsam aber stabil durch und nach ca. 30 Minuten war ein sauberes Ubuntu 18.04 installiert.

bbcode-image


Youtube mit 720p lief jetzt nicht direkt flüssig. Mit 480p lief alles super und sah auch wirklich noch ganz ok aus. Der Unterschied zu 720p war minimal, bei dem was ich getestet habe. Wobei ich mir nicht sicher bin, ob es vielleicht am Grafikkartentreiber liegen könnte, dass der die Videobeschleuningung für den verwendeten Codec von Youtube nicht liefern konnte.

bbcode-image


Mit einem DVI auf HDMI-Adapter ist der PC für seine Aufgabe als Media-Player für das Schlafzimmer gut gerüstet.

bbcode-image


Zur Not kann man die USB3.0 Karte noch gegen eine Lowprofile NVidia Quadro austauschen, da der 2x PCIe Slot nach hinten hin offen ist und so auch PCIe 16x Karten passen, die dann zwar nur mit 2-Lanes laufen, aber damit immer noch ausreichend schnell sind für Media-Player.

Fazit

1,2GHz klingt wenig und ist auch wirklich nicht viel, aber für einfache Aufgaben reicht es und der Grafikchip holt doch einiges raus. Mit einer SSD sind Datenzugriffe ausreichend schnell und werden nur durch die langsame CPU limitiert.
Die 2GB RAM reichen für ein einfaches Linux + Firefox auch aus. Eingebautes WLAN wäre nett aber wäre limitierend, weil Ethernet + WLAN-Accesspoint sind einfacher an schnelle WLAN-Standards anpassbar und man bleibt nicht auf einem alten Standard hängen.

Update: Chromium läuft sehr viel performanter auf dem System als Firefox. Während Firefox auf Youtube öftersmal ruckelt, laufen die selben Videos in der gewählten Auflösung im Chromium vollkommen flüssig.

Update 2:
Ein Wechsel von Ubuntu auf Linux Mint hat sich als sehr gut heraus gestellt. VLC mit Stream vom SAT-IP Server laufen ohne Ruckler oder andere Probleme. Auch die GUI reagiert sehr viel direkter als bei Ubuntu, auch wenn sie weniger für TV-Geräte auf einiger Distanz geeignet ist, als die von Ubuntu.

SSD: Alienware Notebook Resurrection

Man kennt ja das Problem, dass das ältere Notebook an sich noch ganz gut läuft, aber so bald irgendwie viele Daten gelesen oder geschrieben werden müssen, alles doch sehr langsam wird. 500 Fotos kopieren dauert ewig. Windows nach einem Update neustarten dauert ewig. Ein Spiel starten und dann die Ladebildschirme.. dauert alles ewig. Alles andere ist aber normal schnell. Wenn z. B. das Spiel erst geladen hat, läuft es auch ohne Probleme und sogar mit höheren Grafikeinstellungen.. nur die langen Ladezeiten nerven einfach nur.

bbcode-image
Das Alienware Notebook trotzt mit seiner Abwärme jedem Regen!


Ganz konkret geht es um das Alienware M17x R3 meiner Frau und das neue WoW-Addon. Die Ladezeiten von WoW sind schon auf ihrem doch ziemlich aktuellen PC (AMD Ryzen 1800, 512GB SSD M.2) erstaunlich hoch und das ältere Alienware Notebook wird sich da nicht ganz so gut schlagen wie der PC, weil es mit zwei älteren Notebook Festplatten ausgerüstet ist. Wobei eine davon eine SSHD ist, aber man deren theoretischen Vorteil jetzt gerade bei Anwenderprogrammen und Spielen weniger bis gar nicht merkt.

bbcode-image
Benchmark SSHD


Die Benchmark Ergebnis der beiden Festplatten, sehen daher auch nicht ganz so gut aus. Ok über konstante 100MByte/s beim lesen konnte man um 2005 herum noch freuen, aber die Zeit schreitet eben voran und mit SSDs ist man >200MByte/s oder eher 400MByte/s schon gewohnt. Gute über PCIe angebundene SSDs schaffen da noch mal einiges mehr.

Also werden beim Notebook die HDDs gegen eine SSD ausgetauscht. Später kann wenn nötig die 500GB HDD wieder mit eingebaut werden, aber bis jetzt sehe ich da keinen Bedarf. Dass man überhaupt 2 Massenspeicher-Geräte einbauen kann, ist bei Notebooks eher selten, aber jeder der mal so ein Notebook wie das Alienware in der Hand hatte, weiß, dass man sich diese Flexibilität mit einem alles andere als leichten Notebook erkauft, dass mit der Größe auch in keine Standard Notebook-Tasche passt.

Bei der SSD viel die Wahl auf eine refurbished S2500er von Intel mit 360GB. Es gibt zwar schon 500GB für unter 100 Euro, aber die Intel SSD ist sehr gut und der Preis bei notebookswieneu.de stimmte einfach. Wirklich spannend werden wohl die Intel 660p, wenn der Preis wirklich wie angekündigt wird und vielleicht noch etwas fällt.

bbcode-image
refurbished bestellt komplett neuwertig bekommen.. schön glänzend


Die SSD ist genau so schnell und einfach wieder eingebaut wie die Festplatten ausgebaut waren waren. Dafür waren nur 2 Schrauben für den Bodendeckel zu lösen und die Festplatten Schlitten ließen sich nach dem Lösen der Schrauben einfach nach oben raus ziehen. SSD anstelle der HDD ein den Schlitten und wieder von oben einfach rauf stecken. Das ist ein Vorteil der größeren Notebooks, denn bei anderen müsste man sehr viel mehr dafür umbauen.

bbcode-image
noch mit beiden HDDs


bbcode-image
Slot 0 mit SATA Winkeladapter


bbcode-image
SSD installiert


Den Windows 10 USB-Stick zum installieren habe ich auf meinem PC mit dem Tool von Microsoft erzeugt. Geht schnell und einfach und die Installation hat nichts mehr von den Installationsorgien zu Win98 oder NT4.0 Zeiten. Alle Treiber sind direkt dabei und funktionieren sogar besser als die Treiber von Dell Homepage.

bbcode-image
ja... mein PC ist dreckig, ich weiß


bbcode-image
in wenigen Minuten zum fertigen USB-STick


bbcode-image
Was man eben so alles braucht


Die beiden alten Festplatten, die sogar hätten im RAID laufen können in dem Notebook, lege ich mir zur Seite und werde sie mal in externe Gehäuse verbauen. Die 250GB SSHD könnte ich vielleicht in einem meiner Lenovo T500 verbauen und deren echt langsame 160GB HDD ersetzen.
Eingebaut und wurde direkt ohne Probleme erkannt.

bbcode-image


bbcode-image


Jetzt sehen die Benchmark Ergebnisse auch schon direkt viel besser aus und auch die Ladezeiten bei WoW sind spürbar kürzer.

bbcode-image
schon viel besser!


Theoretisch würde der Akku nun auch etwas länger halten, weil eben auch ein Laufwerk weniger verbaut ist. Aber bei so einem Notebook ist Akku Laufzeit sowie so relativ. Wenn der Strom weg ist ist, kommt eine Warnung, dass man diesen doch bitte sehr zügig wieder
einschalten sollte und das Notebook jetzt erst einmal die NVidia Quadro deaktiviert und auf die interne Intel-Grafikkarte zurück fallen wird.

Der Einbau ist wirklich einfach und von jedem der einen Schraubenzieher halten kann ohne sich selbst oder andere dabei schwer zu verletzen ohne Probleme durch zu führen. Windows klonen ist mit den richtigen Tools wie EaseUS genau so einfach und an sich sogar noch einfacher als eine Neuinstallation.

Ich habe hier eine Neuinstallation gewählt, um auch alle alten Reste und Programme aus Windows 7 Zeiten mal los zu werden. 360GB istgerade mit modernen Spielen zwar ausreichend aber doch auch nicht unendlich viel. Deswegen kann ich gut auf alle möglichen alten Dell-Programm und veralteten Treiber-Zusätze verzichten und spare etwas Speicher auf der SSD.

An sich zeigt sich mal wieder, dass man heute eine SSD einfach braucht. Zwar sind neue HDDS auch nicht langsam, aber sie müssen erst einmal anlaufen und in der Zeit hat die SSD schon lange die Daten geliefert. Mit einer SSD wird dann auch ein 8 Jahre altes Notebook wieder so schnell, das man viel Geld investieren müsste um ein Notebook mit mehr Leistung zu bekommen.

Shopware-Plugin: B2B und Preise

Oft ist es B2B-Bereich gewollt, dass mögliche neue Kunden das gesamte Sortiment einsehen können, aber noch nicht direkt die Preise angezeigt bekommen.
Nur die registrierten und vom Händler freigegebenen Kunden sollen, dann die Preise sehen können.

Das hat damit zu tun, dass verschiedene Kunden sehr verschiedene Preise sehen können (abhängig von Kundengruppen in die die Kunden einsortiert werden) und ein default-Preis könnte diese Kunden verschrecken oder es soll nicht erkennbar sein, wie viel Rabatt wirklich gegeben wurde oder gegeben werden kann.
Deswegen sollen diese erst eine Anfrage durchführen und sie werden dann in die passende Gruppe einsortiert, die vielleicht 15% weniger Zahlen als die default-Preise.

Mein Shopware-Plugin Kunden-Registrierung blockieren hilft dabei, in dem es Preise für nicht angemeldete Besucher komplett ausblendet und auch verhindert, dass sich Kunden ohne Freigabe oder Anfrage registrieren können.

bbcode-image

Kostenpflichtiger Support? Ja? Nein?

Momentan ändert sich bei mir Nebengewerblich einiges und ich überlege wie ich meine Shopware Projekte weiter pflegen kann und vielleicht sogar richtig mit Marketing pushen könnte. Das Problem dabei ist, dass ich gerne kleine Dinge für meine Kunden tue ohne direkt Geld zu verlagen. Damit aber sich eine Zukunft ergibt, müssen, die etwas mehr Geld generieren. Dabei wäre wohl der erste Schritt für die Erstellung von XSLT-Templates Geld zu verlangen. Bei JTL oder anderen Anbietern, dachte ich mir bis jetzt, dass es ja von Vorteil wäre einfach die zu bauen und dann ins Plugin zu integrieren. Damit wäre das Plugin von sich aus irgendwann mehr Wert und es wäre vertrettbar den Preis zu erhöhen.

Ich werde wohl bis Dezember dann das Schreiben von neuen XSLT-Templates kostenpflichtig machen. Pro Template brauche ich so 1-2h, wenn ich dann normale Zeiten wie bei meinem Job hätte wohl eher 1h. Das sind Preise dann die niemanden Weh-tun würden.

Das XML-Plugin bekommt noch einmal ein großes Update oder es wird sogar ein 2. Plugin mit dann aber einem entsprechenden Preis (momentan mein favorisiertes Vorgehen). Das kleine wäre dann für die Anbindung an WWS und ERPs und große wäre dann für echtes Dropshipping.

Wenn ich es schaffe, die auch weiterhin weiter entwickeln zu können, wäre dann auch hoffentlich die Zeit für Dokumentation und Tutorial-Videos.

Ich bin selbst sehr gespannt wie alles weiter geht und wie einige meiner Projekte in Zukunft aussehen werden.

bbcode-image

CMS mit parallax-scrolling Modul

Die Überarbeitung meines CMS-Frameworks läuft gut. Optional gibt es auch schon ein parallax-scrolling Modul, das Subpages direkt unter der eigentlichen Page mit Parallax-Effekt rendern kann.



Seiten erstellen, bearbeiten und so ist mit diesem CMS wirklich sehr einfach und ist vielleicht nicht so verbreitet oder umfassend wie Wordpress, aber dafür für kleine einfache Seiten sehr viel schneller. Das Blog-Modul wird momentan auch nochmal überarbeitet.

Ein öffentliches Release des CMS unter MIT-Lizenz folgt wohl in den Wintermonaten.

Update: Zwar ein Jahr später.. aber es ist da:
https://github.com/annonyme/aoop_ng

Shopware: Eigenes Einkaufswelten Element

Da es zu dem Thema "Einkaufswelten Elemente selber bauen mit ExtJS" relativ wenig Hilfe bei Shopware gibt, habe ich mich mal wirklich mit [url=https://developers.shopware.com/developers-guide/custom-shopping-world-elements/#advanced:-adding-a-custom-emotion-component-in-extjs]Hilfe von dem Shopware eigenen Tutorial zu Einkaufswelten Elementen[/ur]) und vielen einzelnen Formus-Beiträgen da durch gekämpft. Ich mag ExtJS immer noch nicht, aber so langsam komme ich wenigstens mit den Components klar. Ist am Ende nicht so viel anders wie Swing oder SWT, nur wird in den Constructoren der Componenten die man erweitert sehr viel "Magic" gemacht auf die man angewiesen ist. Allein die Frage: wie bekomme ich ein einfaches kleines Text-Feld in das richtige FieldSet?

Elemente von Einkaufswelten sind ein wirklich nicht so einfaches Thema, wenn man die reine PHP-Schiene verlässt und mit ExtJS arbeitet. Aber diese Mischung im Vimoe-Element Beispiel finde ich jetzt auch nicht so wirklich toll. Felder hier, Stores da.. man sollte alles auf einen Blick haben und wenn man mit JavaScript arbeitet muss man das Plugin auch nicht öfters neu installieren sondern nur den Cache löschen und das Shopware-Backend neu laden.

Init-Methode einer einfachen kleinen GUI mit einem Feld zur Artikel-Auswahl:


initComponent: function() {
var me = this;
me.callParent(arguments);

me.articleStore = Ext.create('Ext.data.Store', {
model: 'Shopware.model.Dynamic',
proxy: {
type: 'ajax',
url: '{url controller="EntitySearch" action="search"}?model=Shopware\\Models\\Article\\Article',
reader: Ext.create('Shopware.model.DynamicReader')
}
});

me.articles = Ext.create('Ext.form.field.ComboBox', {
name: 'article',
fieldLabel: 'Artikel',
store: me.articleStore,
allowBlank: false,
valueField: 'id',
displayField: 'name'
});
me.articles.setVisible(true);
me.elementFieldset.add(me.articles);
},


Darin sieht man wie man einen eigenen Store mit AJAX-Backend definiert und diesen in der ComboBox verwendet, die man wiederum in den Element-Einstellungen anzeigt. Wenn man schon mal soweit ist, steht einen auf dem Weg zu Einkaufswelten mit eigenen Elementen in Shopware nicht mehr viel im Weg.

Shopware-Plugin: Dropshipping-Solutions

Dropshipping mit Shopware ist ja nicht immer ganz einfach, wenn man nicht direkt alle Produkte von einem Vendor bezieht. Wenn man nur einen für alles hat ist alles ganz einfach weil man direkt, die gesamte Bestellung an diesen senden kann. Hat man nur einen, aber der auch nur bestimmte Produkte liefert geht es jetzt auch bzw. der erste Testdurchlauf für diesen Use-Case lief sauber durch.

Für Multi-Vendor Orders muss man eine Bestellung in mehrere kleine pro Distributor/Vendor/Lieferant aufteilen. Wenn man nur einmal alle 2h oder so die Bestellungen übermittelt und die Waren an sich selbst liefern lassen möchte, kann man diese sogar noch mal vorher wieder mergen, weil dann Lieferant und Empfänger bei allen Bestellungen immer gleich sind. Aber das ist schon ein Ausnahmefall.
Natürlich kann jeder Vendor einen eigenen Endpoint für die Bestellungen bereitstellen. Entweder per Email, Datei-Upload oder REST-API können die Daten in immer unterschiedlichen XML-Formaten übertragen werden. Das macht dann mehr Probleme.

Mein Shopware-Plugin kann nun aber immerhin verschiedene Vendor/Hersteller bei diesem Splitting ignorieren. Damit ist es nun möglich, wenn man nur einen Vendor für bestimmte Produkte hat, diesen auch mit dem Plugin die Bestellungen automatisch zu zustellen. Bei mehr als einem muss mein Plugin noch leider passen.

Das Plugin kann also momentan folgende Fälle komplett abdecken:

- Übertragung von allen Bestellungen in ein ERP-System oder ähnliches
- Übertragung von allen Bestellungen an einen Vendor (mit oder ohne Dropshipping)
- Übertragung von bestimmten Bestellungen oder auch nur Teil-Bestellungen an einen Vendor (mit oder ohne Dropshipping)

ob es sich um eine einfache Order bei dem Vendor handelt oder um Dropshipping, muss man sich teilweise im XSLT für das Order-XML selbst zusammen bauen (oder mich damit beauftragen). Für die openTRANS-Formate versuche ich momentan eine Lösung zu entwickeln, die dann z.B. die Lieferadresse automatisch nach Konfiguration mit den eigenen Adress- oder den Kunden-Adressdaten befüllt.

bbcode-image


bbcode-image
Für den Export zulassen


bbcode-image


An einer vollständigen Lösung, um beliebig viele Vendor mit jeweils eigenen Übertragungsarten und XML-Formaten anzubinden, arbeite ich auch nebenbei. Gerne würde ich eine Shop-System unabhängige Lösung bauen.. leider fehlt dafür aber Zeit und Geld... bzw. hauptsächlich Geld.. weil wenn man das Geld hat, hat man auch die Zeit.


Der Blog, die Arbeit und zu wenig Zeit

Der Blog liegt leider bei mir gerade etwas brach. Zu viel zu Arbeiten und auch das Haus zieht viel Aufmerksamkeit auf sich. Das Wetter ist eben so gut, dass man den Garten dann gegen Ende doch fast auf dem Niveau hat, das man sich Anfang des Jahres vorgenommen hat.

Momentan steht ein Projekt mit meinem PHP-Framework, ganz oben auf der Todo-Liste. Wenn ich mal das Blog-Modul und das Admin-Panel verbessern würde, kann man es auch über all da einsetzen, wo sonst eher WordPress eingesetzt wird. Aber ist Dabei modular, MVC, Events, etc... also doch noch eher dazu da darin selbst zu entwickeln.
Die Pflege der Shopware Plugins und die Entwicklerer weiter Shopware Plugins ist momentan auch eher zurück gestellt. Wobei dass das ist, was ich dann gegen Ende des Jahres wieder mehr verstärkt betreiben werden.

Zum Ende des Jahres, werde ich mal wieder mehr schreiben. Auch mal wieder etwas mehr über das Thema Arbeit an sich. Druck, Arbeitszeitmodelle und so, da ich in letzter Zeit doch öfters in nicht immer positiver Weise damit konfrontiert wurde.

Wobei man natürlich auch Garten heutzutage nicht ohne IT auskommt (Temperatur-Überwachung).
bbcode-image

Text-Editor für Linux

Ich habe ja lange nach einem guten Text-Editor für Linux gesucht.

- gedit: zu primitiv
- Geany: schelchte UI und ich muss neue Tabs vor dem Schließen speichern
- Atom: Nett und das mit dem Tabs und dem Schließen funktionierte FAST

Am Ende habe ich wieder Notepad++ mit Wine verwendet und bin damit echt sehr zufrieden. Nur leider ist es kein natives Linux-Programm.

Heute habe ich dann Visual Studio Code ausprobiert.

bbcode-image


Tab aufgemacht, was geschrieben, Editor geschlossen, wieder geöffnet UND alles war noch da! Er kann das was ich bis jetzt nur bei Notepad++ gefunden habe und sieht noch gut aus. Bis jetzt gefällt er mir sehr gut.

bbcode-image


Wer hätte vor paar Jahren gedacht, dass einer der besten Editoren für Linux von Microsoft kommen wird?

Projekt: Highspeed USB-Stick

Die Idee klang erst einmal ganz interessant. Eine ältere SSD im mSATA oder M.2 Format in einen USB 3.0 Adapter einbauen und als schnellen USB-Stick verwenden. Kostet auch so gut wie nichts. Ein Adapter so 3-5 EUR in China und eine 32GB mSATA SSD kostet auch nur etwas über 10 EUR.
Nettes kleines Projekt dachte ich mir. Kann ja nicht viel schief laufen, außer dass der Adapter vielleicht am Ende doch alles aus bremst, weil der schlecht ist.

bbcode-image


Und mein vorhaben ist grandios gescheitert. Eines von beiden funktioniert nicht. Formatieren ging nach vielen versuchen. Aber irgendwann bricht die Übertragung ab und Windows meldet einen Timeout.

bbcode-image


bbcode-image


Was jetzt? SSD neu bestellen? Adapter erneut bestellen?

Ich bestell einen SATA-Adapter (kann man immer mal gebrauchen) und teste mal die SSD. Wenn die defekt ist, wird die zurück geschickt. Ansonsten werde ich mal abwarten, ob man einen neuen Adapter mal für 1 EUR oder so bekommt, der hoffentlich dann richtig funktioniert.

Older posts:

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