Freitag, 31. August 2018

Nachdem ich dem Vertreter der deutschen Fraktion - A. Just - eine angepasste 1  er Version von Cmsmadesimple angeboten und geliefert hatte und nichts mehr davon hörte ist mein Interesse nun Null.

Bei der angepassten Version handelte es sich nur um Änderungen die eine Lauffähigkeit unter der aktuellen 7 er PHP Version ermöglicht.

Die hat der Just seinem Publikum vorenthalten.

Freitag, 5. August 2016

Cmsms V 2 - keine Fortschritte

Der Code der V2 Version von Cmsmadesimple ist in einigen Teilen ein unstrukturiertes heilloses Durcheinander.
Klar erkennbar - es ist eine Programmierung ohne Plan geworden.
Man hat quasi mal einen Stein für eine Pflasterstraße gelegt ohne zu wissen wo diese Straße enden soll und immer weiter gebaut.

Problematisch - und das schon seit der Version 1 - die zahlreichen sinnlosen Mysql Abfragen und die Aufbereitung von Zwischenergebnissen mit PHP , obwohl man vieles direkt mit Mysql erledigen könnte.

Da wird via Mysql sortiert (ORDER BY) was das Zeug hält, aber ohne zu prüfen ob man dafür einen Index hat bzw. ob ein vorhandener Index auch genutzt wird.
Und so wird massiv der Mysql - Service belastet. Statt ein einfaches WHERE kommen dann viel zu häufig Filesorts und gar Temp - Tabellen dabei heraus.

Selbstverständlich kann man Inhalte erfolgreich abspeichern, auch wenn die Tabelle content_props komplett fehlt.

Klar ist auch das bei einer Störung im Mysql - Bereich und einem Update z.B. von Gruppenrechten der Inhalt der ganzen Gruppe flöten geht.

Solche Fehler sind nur dämlich:

// let them add scripts to the end ie: a jQuery plugin if(!empty($append)) { $append_list = explode(",", trim(str_replace(' ','',$append))); foreach($append_list as $key => $item) { $scripts['user_'+$key] = array('local'=>$item); } }

Das ergibt dann 
Warning: A non-numeric value encountered  
und eine Fehlfunktion.

InnoDB - der Default-Tabellentyp bei Mysql - offenbar unbekannt.
Transactions ? Hä - was ist das ? Ein unbekanntes Wesen ?

Oder solch dämliche Code - Varianten:

Original
    public function HasProperty($name) {
        if (!$name)
            return FALSE;
        if (!is_array($this->_props))
            $this->_load_properties();
        if (!is_array($this->_props))
            return FALSE;      
        return in_array($name, array_keys($this->_props));
    }


Richtig
    public function HasProperty($name) {
        if (!$name)
            return FALSE;
        if (!is_array($this->_props))
            $this->_load_properties();
        if (!is_array($this->_props))
            return FALSE;      
        return array_key_exists($name, $this->_props);
    }


die im Original umständlich wie sonst etwas sind und nicht gerade von PHP Kenntnissen zeugen und die zudem unter PHP 7.1 zu Fehlern führen.

Von überflüssigem Code wollen wir noch nicht einmal reden, hier nur das kleinste Beispiel:

$orig_memory = (function_exists('memory_get_usage')?memory_get_usage():0);

Die Dev's von Cmsmadesimple leben hinter dem Mond denn ab PHP 5.2.1 ist memory_ger_usage grundsätzlich vorhanden.

Der seit Jahren völlig nutzlose und sogar unterm Strich langsamer machender Contentcache bleibt erhalten und wird extrem umständlich ausgeführt, genauso die Aufbereitung der Navigation.

Grund: die frühen Entwickler wie auch die jetzigen haben viel zu wenig Ahnung von Mysql.

Das es auch anders und sehr viel schneller geht habe ich bereits vor Jahren mit dem damaligen Fork Powercms gezeigt.

Ebenso die Suchliste. Darin sind jede Menge Sonderzeichen etc. enthalten nach denen man nicht sucht und auch nicht suchen kann.
Geändert aber wurde natürlich nichts.

Von Mysql Fulltext haben die auch noch nie etwas gehört - so scheint es.

Das ein Aufruf von

debug_buffer('loading page functions');

grundsätzlich für PHP ein Aufwand ist leuchtet allen ein.
Erst in der Funktion abzufragen ob debug gesetzt ist ist seit Jahren ein haarsträubender Unsinn.

Aber das nun zu korrigieren wie hier

if ($config["debug"] == true) debug_buffer('loading page functions');

ist ja ein Aufwand und für wen oder was ? Damit das ganze ein wenig schneller wird.

Und so kann man es weiter treiben ohne Ende.

Allein beim Thema Navigationsaufbereitung könnte man seitenweise langsamen Codemüll entsorgen.

Die Einbindung von Smarty ist und bleibt eine Katastrophe auch wenn die DEV's dies den Anwendern als Fortschritt verkaufen wollen.
So ist und war der Einsatz von Smarty von seiten deren Entwickler nie gedacht.

Und so kommt was kommen muss - dieser Einsatz passt nicht zur letzten aktuellen Version von Smarty, man verwendet noch immer eine Uralt Smarty DEV Version mit allen Macken die da enthalten sind.

Und es droht weiteres Ungemach.
Der Macher von Smarty  - Tews - ist dabei seine Hardwarefirma in einem Neubau ziehen zu lassen, der gerade am entstehen ist.
Zufällig entsteht das Gebäude auch noch an der Stelle wo das Haus stand in dem ich geboren wurde (was nichts zur Sache beiträgt).

Die erklärte Absicht von Herrn Tews ist die, das seien Firma ordentlich wachsen soll. Hintergrund ist wohl auch sein Alter, das einen Ruhestand schon rechtfertigen kann und natürlich sein Interesse das alles seinen Kindern zu vermachen.

Tews hat also für Smarty sehr wenig bis keine Zeit zur Verfügung. So stammt die letzte Smarty Version vom 21.12.2015. Eine Terminvorstellung für eine neue Version die auch den geänderten PHP Verhältnissen angepasst wurde gibt es nicht.
Und im Forum von Smarty geht es nun ähnlich zu wie bei cmsmadesimnple.org - tausende Postings werden nicht beantwortet. Schreibt man dazu etwas nett und freundlich wird der Account gelöscht.
Man ist da also sprachlos geworden und bedient sich solcher Mittel.
Die Löschung hat Tews garantiert nicht selbst vorgenommen sondern derjenige der das nun machen soll.

Ich gehe davon aus, das Smarty langsam aber sicher der Projekttod bevorsteht.
Das sieht natürlich sehr böse aus für ein System wie Cmsmadesimple.
Cmsms wartet tatsächlich offenbar  auf eine neue Version von Smarty von denen man glaubt das gewisse Dinge da verändert werden, die einen simplen Tausch der Versionen in dem verschrobenen Einsatz bei Cmsms ermöglichen - darauf aber werden sie ewig warten.

Ich selbst setze für meine Projekte kein Smarty mehr ein sondern meine eigene selbst entwickelte Templateengine, die so offen, klar und auch relativ klein ist, das man sie leicht verwenden kann.


Samstag, 16. Juli 2016

Das Qualitätsdilemma beim Cmsms

Das Cmsms nur bedingt für Webs taugt ist eigentlich bekannt.

Interessant ist aber folgendes .
Über die Domain welovecmsms.com wird das System beworben.

Das macht man ganz einfach - neue Websites die mit Cmsms erstellt wurden werden im Showcase - Teil gezeigt.

Das Problem besteht darin das keine einzige dieser Websites brauchbare oder gar gute Noten bei Google Pagespeed  erreicht.

Damit gehe ich nicht auf die Inhalte ein - die sind teils sogar recht gefällig gestaltet.

Diese Ergebnisse zeigen jedoch das die Webersteller allesamt keine Profis sind die wissen worauf es ankommt.

Wenn ein Webersteller das gewerblich macht ist es noch lange kein Beleg dafür das es sich um Profis handelt.

Hier bei den Showcases handelt es sich allesamt um absolut nicht zufriedenstellende Arbeiten bei dem der Endkunde lediglich den falschen Eindruck gewinnt ein gutes Web bekommen zu haben.

In Wirklichkeit hätte man sein Geld gleich in den Papierkorb werfen können.

Der Verdacht nährt sich das das System selbst es nicht einfach macht optimale Pagespeedwerte erzeugen zu können.

Und in der Tat  dieser Mangel wird durch Unfähigkeit auf beiden Seiten erzeugt - auf der Seite der Webersteller wie auf der Seite von Cmsms - vertreten durch die Entwickler.

Dienstag, 19. April 2016

One, two, three ...

Ich habe die Domain cmsmadesimple.one erworben - auf Vorrat und mit der Idee im Hintergrund das es vielleicht Leute gibt die Cmsms aus der Serie 1 weiter entwickeln wollen, da die Serie 2 aus meiner Sicht Schrott ist und alle enttäuscht haben die etwa grundlegende Anpassungen an die Nutzerwünsche erhofften.

Auch die angekündigten "tollen" Änderungen bei der nächsten 2 er Version sind ein Lacher.

Eigene Mysql - Klasse aber nicht etwa PDO nein stink normales Mysqli - das hätte man sich komplett sparen können - eine Überarbeitung  von AdoDB light hätte es auch getan.

Wobei natürlich das Hauptproblem bleibt - SQL Abfragen wie die Anfänger und statt möglichst viel auf Mysql zu schieben immer fleißig PHP dazwischen, obwohl man jede Menge auf einem Schlag mit Mysql  direkt hätte erledigen können.

Was die One betrifft - natürlich rede ich nicht von unmöglichen Änderungen sondern von Dingen die ich vor vielen Jahren schon längst einmal gemacht habe und somit praktisch aus dem vollen Schrank greifen kann.

Ob das aber jemals zu einem Angebot auf der One kommen wird hängt von einigen Faktoren ab.

Darüber aber reden wir erst wenn die Serie 1 von Cmsmadesimple.org eingestellt wurde.

Montag, 18. April 2016

cmsmadesimple.one

Ich habe die cmsmadesimple.one Domain erworben mit dem Gedanken das vielleicht irgendwelche Leute die 1 er Serie von Cmsmadesimple weiter führen und pflegen wollen, weil die Serie 2 vom Start weg vollkommen verkackt wurde.

Noch ist da kein Leben eingehaucht aber das geht heute sehr sehr schnell und dann muss sich Cmsms mit der Serie 2 warm einpacken.

Sonntag, 17. April 2016

Cmsms 2.1.3 - im wesentlichen nichts geändert

Übersetzungen nicht vorhanden oder Schrott, immer noch Uralt Smarty im Einsatz, Uralt Jquery im Einsatz und und und.

Man fragt sich eigentlich was die da machen - jedenfalls nix an den dringlichen Problemen.

Und dann immer noch solche Dinge wie:

  1. Cms ist mit Kompilierungsprüfung durch Smarty schneller als ohne.
  2. Der Einsatz vom Smarty Cache führt zum Fehlerfall bei allen aufgerufenen Seiten unter dem Apache Benchmark.
Also ehrlich - langsam muss man glauben das man den Entwicklern in's Gehirn geschissen hat.

Auch kann man den Ankündigungen zu einer besseren Datenbankklasse nicht trauen - zeigen doch die getätigten SQL Abfragen das die Developer nur rudimentäre Kenntnisse von SQL haben auf Anfängerniveau. Darüber hinaus wird mit SQL gearbeitet und anschließend Arbeit per PHP ausgeführt die man sogleich mit der Abfrage selbst hätte erledigen können.

Also aus meiner Sicht - das Grauen geht weiter.
Ich rate jedem sich ein anderes System zu suchen.












Donnerstag, 24. März 2016

Viel Smarty und doch keine Ahnung

Da zieht man eine Sache aus dem Smarty Forum heran als Argument warum man selbst die 1 er Version noch nicht auf Smarty aktuell umgestellt hat.

Da wird bei Smarty eine Sache behandelt mit einem Benchmark der als solches bereits falsch aufgestellt ist und der zudem in der Praxis natürlich  nie vorkommt - aber das ist bei allen Benchmarks der Fall.

Wie dem auch sei - man will mal wieder auf die nächste Smarty Version warten.

Dabei sollte man doch einfach mal einen Benchmark machen der so ausschaut:

<?php
require '../libs/Smarty.class.php';

$smarty = new Smarty();

$loop = 0;
$speed = 50000;

$start = microtime(true);
$smarty->assign("Name", "Fred Irving Johnathan Bradley Peppergill", true);
$smarty->assign("FirstName", array("John", "Mary", "James", "Henry"));
$smarty->assign("LastName", array("Doe", "Smith", "Johnson", "Case"));
$smarty->assign("Class", array(array("A", "B", "C", "D"), array("E", "F", "G", "H"),
                               array("I", "J", "K", "L"), array("M", "N", "O", "P")));

$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
                                  array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));

$smarty->assign("option_values", array("NY", "NE", "KS", "IA", "OK", "TX"));
$smarty->assign("option_output", array("New York", "Nebraska", "Kansas", "Iowa", "Oklahoma", "Texas"));
$smarty->assign("option_selected", "NE");

for ($i=0; $i<$speed; $i++) {



$smarty->fetch('index.tpl');
$loop++; echo $loop.'<br />';
}

$time = microtime(true) - $start;

echo "Total: " . $time . "<br />";
echo "One: " . ($time/$loop) . "<br />";


Ja richtig . das ist die mitgelieferte Demo etwas verändert.

Die Ergebnisse:


3.29

50000

Total: 20.58358001709
One: 0.0004116716003418


3.27

Versuch 1
20594

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/test1/smarty27/libs/sysplugins/smarty_internal_template.php on line 367


Versuch 2
34326
Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/html/test1/smarty27/libs/sysplugins/smarty_internal_configfileparser.php on line 940

Was nichts weiter bedeutet das die Version 3.27 die bei dem ominösen Benchmark eine Rolle spielt ganz andere Fallen hat und das es ein ziemlicher Unsinn ist so zu argumentieren.

Das Problem - die bei cms...de haben nicht wirklich Ahnung.