Mittwoch, 24. Juni 2015

Cmsms V2 RC1 voller Fehler


Nachdem ich 2 Fehler im Source der CMS selbst beseitigt hatte konnte ich diese RC1 installieren.
Den einen Fehler hatte ich bereits gepostet, den anderen behalte ich für mich - die Developer hatten sich bislang noch nicht einmal für den ersten geposteten interessiert - der ist noch vorhanden.

Hier nochmals der bereits gepostete:



public function delete()
  {
    if( $this['name'] == '' ) continue;
    self::_get_module()->RemovePreference('profile_'.$this['name']);
    unset($this->_data['name']);
  }
(Der Programmierer hat continue mit return verwechselt.)

Aber - so bei der schnellen Durchsicht stellt man fest das der Source noch eine große Anzahl von Fehlern enthält.
Die hätte ein guter Programmierer bemerken müssen, wäre er vor dem abhaken einer Funktion den Code nochmals durchgegangen.
Hier sind es auch Dinge die sich als Fehler erst dann bemerkbar machen wenn mehrere Bedingungen vorliegen die erfüllt sein müssen.
Bei der Codedurchsicht zu erkennen bei einem Fehlerauftritt sind sie aber schwer zu lokalisieren.

Was ausgesprochen schlecht ist - man fragt im Installprogramm die PHP Version auf 5.4 ab - darunter ist es nicht installierbar, aber niemand fragt sich warum man im Source des Systems auch nach 5.3 abfragt und sogar Code verwendet der mit steigenden PHP Versionen überflüssig wird.

Tatsache ist das alle PHP Versionen unterhalb 5.6 tot sind, die werden nicht mehr aktiv gepflegt und werden nur noch teilweise bei Sicherheitsmängeln  neu angeboten.

Dann kann es nur noch darum gehen die aktuelle plus die nächste kommende Version unter die Lupe zu nehmen.

Die kommende Version ist PHP 7 und wenn man eine in weiten Teilen  neu programmierte CMS anbietet, es eine PHP 7 Alpha gibt und sogar der Termin der fertigen Version bekannt ist, dann sollte man notwendige Anpassungen zu PHP 7 vornehmen, insbesondere dann, wenn die CMS auch nach einer Anpassung unter 5.6 läuft und zwar ohne Zusatzcode.

Dergleichen wurde nicht unternommen obwohl genau das eine Kleinigkeit gewesen wäre die innerhalb einer Stunde mit einem gemütlichen Kaffee dazu erledigt gewesen wäre.

Bei der bekannten Geschwindigkeit in der Entwicklung von Cmsmadesimple wird man wahrscheinlich noch mindestens 3 Jahre warten müssen bis man daran denkt und ein weiteres Jahr bis es soweit ist.
Dann aber haben wir möglicherweise schon PHP 8 vor der Nase.

Tatsache ist - auf Grund der vorliegenden Fehler ist eine Installation nicht unter allen gängen PHP Live Versionen möglich. Es kann sogar ein unbemerkter, weil nicht protokollierter Abbruch erfolgen ohne das z.B. DB Inhalte installiert sind oder vollständig installiert sind.
Folge - weisser Schirm oder unvollständige Ausgabe.

Wenn das erst mal beseitigt ist und eine größere Anzahl von Interessierten die RC1 testen kann, dann wird es nur so von Fehlermeldungen hageln das den Entwicklern schwarz vor Augen wird.

Montag, 22. Juni 2015

Cmsms 2.0 RC1 leider Schrott

Leider ist die von Cmsmadesimple abgelieferte RC1 unbrauchbarer Schrott.

Wie es schon zu befürchten war wird wieder Adodb Light eingesetzt die 2007 das letzte mal aktualisiert wurde.

Neuere Tabellen verwenden Autoincrement von Mysql und sind damit inkompatibel zu Adodb und seiner Fähigkeit diverse DB - Systeme ansteuern zu können.

Die Tabellen entsprechen mit dem Typ MyIsam schon lange nicht mehr dem Mysql Standardtyp - der ist nämlich InnoDB.

Man war also hier - wie immer - absolut inkonsequent.

Eingesetzt wird  const SMARTY_VERSION = '3.1.24';  , die aktuell gültige Version ist jedoch  3.1.27.

Jquery wird in 1.11.1 verwendet 1.11.3 liegt jedoch vor.
Jquery UI wird in 1.10.4 verwendet liegt jedoch in 1.11.4 vor.

Neue Software die veraltete Libs verwendet ist damit bereits veraltet !!

Übersetzungen fehlen nicht nur im deutschen Bereich sondern auch in vielen anderen Sprachen.

Installiert man in deutsch hat man einen Mix von Deutsch / Englisch vorliegen.

Die eigentliche Installation klappt aber dann erfolgt im Frontend das:


Offensichtlich hat da das Installationsskript versagt und nicht alles mit installiert.

Ab da hört es auf  einen  komplexeren Test sinnvoll zu machen - diese Version ist Schrott.

Und es ist überhaupt nicht zukunftssicher programmiert.

Beispielcode:
protected function encodeFile($path, $encoding = 'base64')
    {
        try {
            if (!is_readable($path)) {
                throw new phpmailerException($this->lang('file_open') . $path, self::STOP_CONTINUE);
            }
            $magic_quotes = get_magic_quotes_runtime();
            if ($magic_quotes) {
                if (version_compare(PHP_VERSION, '5.3.0', '<')) {
                    set_magic_quotes_runtime(0);
                } else {
                    ini_set('magic_quotes_runtime', 0);
                }
            }
            $file_buffer = file_get_contents($path);
            $file_buffer = $this->encodeString($file_buffer, $encoding);
            if ($magic_quotes) {
                if (version_compare(PHP_VERSION, '5.3.0', '<')) {
                    set_magic_quotes_runtime($magic_quotes);
                } else {
                    ini_set('magic_quotes_runtime', $magic_quotes);
                }
            }
            return $file_buffer;
        } catch (Exception $exc) {
            $this->setError($exc->getMessage());
            return '';
        }
    }


Aber die PHP Version 5.3 ist bereits tot.
Man muss auch beobachten das Smarty noch Abfragen nach toten PHP Versionen ausführt.

Aber auch so etwas:

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

Dazu PHP
5.2.1Compiling with --enable-memory-limit is no longer required for this function to exist.
PHP 5.2 ist jedoch mausetot.

Oder der immer noch extensive Einsatz von file_exists statr is_file . Mit file_exists kann man auch auf andere Sites zugreifen - kann also zum Sicherheitsrisiko werden , mit is_file ist das nicht möglich und is_file ist deutlich schneller.

Und zum Thema PHP Versionen das bekloppteste -

    if( version_compare(phpversion(),'5.4.0') < 0 ) throw new \Exception('We are sorry, but this installer requires at least PHP 5.4.0');


---------------

Wer mal eben das Programm lokal installieren will der bekommt mit dem Installationsprogramm die Welt der Wunder zu sehen wenn man die andere Installart wählt.

Da ich diverse Installationen von Anwendungen drauf habe erscheinen auf einmal tausende von Unterverzeichnissen aus der ich das Verzeichnis auswählen soll, wohin die Installation rein soll.
Natürlich unsortiert und mal eben eine Eingabe ist ebenso nicht möglich.

Allein damit wird es sich Cmsms bereits versauen bei denjenigen die es vorher einmal lokal probieren möchten.

Ändert man den Teil ab wie hier

            if( count($out) ){asort($out);return $out;}
        };

        $out = array();
        if( $_is_valid_dir($parent) ) $out[$parent] = $parent;
        $tmp = $_find_dirs($parent);
        if( count($tmp) ) $out = array_merge($out,$tmp);
        asort($out);



Dann hat man eine sortierte Liste kann installieren aber man kommt nur bis dahin:

Also - ebenfalls Schrott.

Ursache Programmierfehler:

public function delete()
  {
    if( $this['name'] == '' ) continue;
    self::_get_module()->RemovePreference('profile_'.$this['name']);
    unset($this->_data['name']);
  }
Wegen Fehler muss an dieser Stelle der Abbruch erfolgen.
Das aber bedeutet die Module werden nicht zu Ende installiert, sind zwar kopiert aber nicht im System vorhanden.

Da hat sich jemand etwas ausgedacht wo es aber nicht ausreichte um es zu Ende zu denken.

Dieses Machwerk als RC zu betiteln ist eine bodenlose Frechheit.



Samstag, 13. Juni 2015

Cmsmadesimple ist nichts für PHP 7

So wie Cmsms jetzt ist ist es rein nichts für PHP 7.

Die Installation auch der V2 Beta ist im Standard nicht möglich da immer noch @set_magic_quotes_runtime(false); verwendet wird.

Kommentiert man es aus dann kann man installieren aber die Leistung ist mehr als bescheiden.

Hier die Benchmarks unter PHP 7 Alpha 1


cmsms 1 letzte Version



ab -kc 100 -t 30 http://localhost/cmsms/index.php
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Finished 1431 requests


Server Software:        Apache/2.4.10
Server Hostname:        localhost
Server Port:            80

Document Path:          /cmsms/index.php
Document Length:        16264 bytes

Concurrency Level:      100
Time taken for tests:   30.031 seconds
Complete requests:      1431
Failed requests:        0
Keep-Alive requests:    0
Total transferred:      23917264 bytes
HTML transferred:       23290048 bytes
Requests per second:    47.65 [#/sec] (mean)
Time per request:       2098.580 [ms] (mean)
Time per request:       20.986 [ms] (mean, across all concurrent requests)
Transfer rate:          777.76 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   5.1      0      20
Processing:    81 2013 418.1   2065    2930
Waiting:       72 1991 413.4   2043    2904
Total:         82 2015 414.6   2065    2930

Percentage of the requests served within a certain time (ms)
  50%   2064
  66%   2182
  75%   2261
  80%   2313
  90%   2443
  95%   2536
  98%   2666
  99%   2744
 100%   2930 (longest request)


cmsms 2 letzte Beta


ab -kc 100 -t 30 http://localhost/cmsms2/index.php
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Finished 1200 requests


Server Software:        Apache/2.4.10
Server Hostname:        localhost
Server Port:            80

Document Path:          /cmsms2/index.php
Document Length:        14568 bytes

Concurrency Level:      100
Time taken for tests:   30.022 seconds
Complete requests:      1200
Failed requests:        0
Keep-Alive requests:    0
Total transferred:      18022206 bytes
HTML transferred:       17496168 bytes
Requests per second:    39.97 [#/sec] (mean)
Time per request:       2501.826 [ms] (mean)
Time per request:       25.018 [ms] (mean, across all concurrent requests)
Transfer rate:          586.23 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   4.2      0      17
Processing:   723 2398 360.8   2413    4152
Waiting:      720 2369 359.9   2378    4139
Total:        727 2400 359.1   2413    4152

Percentage of the requests served within a certain time (ms)
  50%   2413
  66%   2528
  75%   2606
  80%   2656
  90%   2820
  95%   2954
  98%   3118
  99%   3212
 100%   4152 (longest request)

Die V2 ist an Lahmarschigkeit kaum zu überbieten.

Mittwoch, 3. Juni 2015

Cmsms 2.0 lässt auf sich warten

Cmsms 2.0 ist längst  zeitlich in Dimensionen gekommen die weit über die angekündigten Termine geht.
Nun soll es noch 4..6 Wochen dauern bis sie fertig sein soll.

Grund dafür - die neue Version von Smarty.

Eigentlicher Grund - die bis heute unsachgemäße Verwendung von Smarty in allen bisher erhältlichen Versionen und die Unfähigkeit der Cmsmadesimple Autoren sich mit Zulieferern der verwendeten Libs abzusprechen.
Diese Unfähigkeit aber ist für die Cmsmadesimple Dev's typisch und in allen Bereichen dominierend.

Wegen der Veränderungen bei Smarty sind auch Altversionen mit der aktuellen Smarty Version nicht lauffähig.

Das bedeutet - es gibt keine Chance die 1 er Serie noch eine Zeit lang aktuell zu halten.

Die Dev's wollen eine von Ihnen unveränderte Smarty Version laufen lassen - das wäre gut wenn es denn so wäre.

Bislang jedoch waren solche Ankündigungen der Dev's nicht den Platz auf dem Bildschirm wert wo sie standen.

Klar ist - ein einfaches Upgrade von Serie 1 Installationen zu Serie 2 kann und wird es nicht geben.
Der Aufwand ist sogar größer als wenn man sich einem völlig neuen System zuwenden würde, das nicht Cmsmadesimple heißt.

Da die Leistungswerte von Cmsms - so wie bis jetzt bekannt -   weit unter dem ist was man heute erwartet kann ich nur jedem Cmsmadesimple Anwender empfehlen sich einem anderen Produkt zuzuwenden.

Klar ist zudem das Cmsms nichts von deutschen Anwendern hält und das positive Veränderungen im Dev Team von Cmsmadesimple solange nicht zu erwarten sind wie Robert Campbell versucht das Projekt zu leiten.

Das alles sind Dinge wo jeder vernünftig denkende Mensch seine Entscheidung treffen muss und die kann nicht Cmsmadesimple heißen.