Webdesign und TYPO3 Blog aus DuisburgMySQL Limit Anzahl Datensätze (26.7.2016, 12:06 UTC)

Gerade bei vielen Datensätzen werden diese häufig mit Limit ausgeführt, damit ein Paging eingesetzt werden kann.

MySQL Limit Anzahl Datensätze

MySQL Limit Anzahl Datensätze

Allerdings ist es auch immer eine wichtige Information für den User, wie viele Datensätzen gefunden wurden. MySQL Limit Anzahl Datensätze ausgeben benötigt allerdings die MySQL-Funktion SQL_CALC_FOUND_ROWS in Kombination mit FOUND_ROWS. Dadurch bekommt man dann die Gesamtzahl des abgefragten Queries ohne die Limit Einschränkung. So kann man sehr gut ein Paging Anwenden und den User die Gesamtzahl ausgeben. Das ist eine gute Möglichkeit performant zu bleiben, da man nicht zu viele Datensätze in das Frontend bringt und den Browser nicht zu viel Rendering aussetzt. Das wird leider auch gerne bei der Entwicklung übersehen. Gerade wenn mit APIs entwickelt wird.

MySQL Limit Anzahl Datensätze mit SQL_CALC_FOUND_ROWS und FOUND_ROWS

Hier ein konkretes Beispiel für die Abfrage

SELECT SQL_CALC_FOUND_ROWS name, email FROM users LIMIT 10;
SELECT FOUND_ROWS();

Im Grunde werden hier 2 Abfragen ausgeführt. Hier gibt es zahlreiche Beiträge im Netz, die auf eine schlechte Performance hinweisen. Natürlich ist das ganze langsamer, als nur eine Abfrage mit einem Limit. Aber dennoch ist das ganze hier schneller, als 2 komplette Abfragen durchzuführen.

Blog-Post zum Thema Paging von neunzehn83
https://neunzehn83.de/blog/2010/07/13/blattern-mit-mysql-und-sql_calc_found_rows.html

Der TYPO3 Webdesign Blog MySQL Limit Anzahl Datensätze erschien zuerst auf Webdesign und TYPO3 Blog aus Duisburg.

Link
PHPUGFFMUmzug abgeschlossen (5.7.2016, 20:52 UTC)

Im Laufe des heutigen Tages ist die Homepage der Usergroup servertechnisch umgezogen. Es gab da ein paar kleinere Schwierigkeiten in den Layer-8 Komponenten, die wir erst noch beheben mussten, aber jetzt läuft alles wieder wie geschnitten Brot!

Danke an Stephan Hochdörfer für seinen unermüdlichen Einsatz und bitExpert für die Übernahme des Hostings!

Link
PHP-TagebuchErfahrungen über die Programmierung eines Text Spinners (5.7.2016, 19:29 UTC)

Die letzten Tage habe ich mir einmal die Zeit genommen, einen rein browserbasierten Text Spinner zu bauen. Ich kann mir vorstellen, dass der eine oder andere sich dafür interessiert. Deswegen möchte ich in diesem Artikel ein paar wenig darüber sprechen.

Was ist ein Text Spinner?

Ein Text- bzw. Artikel Spinner ist ein Tool, das es ermöglicht, an Hand eines Textes mit Hilfe einer Markup Sprache wie zum Beispiel Spintax Synonyme für bestimmte Wörter festzulegen. Hat man damit abgeschlossen und genügend Synonyme definiert, generiert der Text Spinner eine Vielzahl an Texten, die sich auf Grund der unterschiedlichen Wörter augenscheinlich unterscheiden, inhaltlich aber identisch sind.

Um das zu veranschaulichen, hier ein Beispiel-Satz aus Wikipedia:

Ein Tisch ist ein Möbelstück, das sich durch eine zugängliche, meist ebene und waagerechte Fläche charakterisieren lässt, die auf einem oder mehreren Beinen ruht, und dem Zweck der Ablage von Gegenständen dient.

Diesen Satz könnte man nun über den Artikel Spinner folgendermaßen bearbeiten:

Ein Tisch ist ein {Möbelstück|Mobiliar}, {das|welches} sich {anhand einer|mithilfe einer} {zugänglichen|erreichbaren}, {meist|häufig} {ebenen|flachen} und {waagerechten|horizontalen} Fläche {charakterisieren|beschreiben} lässt, {die|welche} auf einem oder {mehreren|einigen} Beinen {ruht|steht}, {und|sowie} dem {Zweck|Nutzen} der {Ablage|Lagerung} von {Gegenständen|Sachgegenständen} dient.

An Hand dieser Formatierung kann der Artikel Spinner nun unter anderem folgenden Satz erzeugen:

Ein Tisch ist ein Mobiliar, welches sich mithilfe einer erreichbaren, häufig flachen und horizontalen Fläche beschreiben lässt, welche auf einem oder einigen Beinen steht, sowie dem Nutzen der Lagerung von Sachgegenständen dient.

Wozu dient das Umschreiben von Texten?

Es gibt diverse Gründe, warum Texte umgeschrieben werden sollten.

Dahinter können natürlich fragwürdige Absichten stehen – wie zum Beispiel das Umschreiben von Texten, um diese dann als eigene auszugeben. Hierbei gab es ja schon einige Skandale von diversen Prominenten und Politikern, die im Nachhinein ihre Doktorarbeit aberkannt bekommen haben. Aber ja, ein Text Spinner kann auch hierbei helfen.

Ein weiterer Grund, der mich auch zur Entwicklung des Spinners bewogen hat, ist das Verfassen von Texten für meine Webseiten.
Google liebt guten – und vor allem einzigartigen – Content und ein Artikel Spinner hilft dabei, Texte aus diversen Quellen schnell und einfach entsprechend anzupassen. Wer selber Artikel im Netz verfasst, weiß, dass es nicht immer einfach ist, Texte so zu schreiben, dass sie nicht als duplicate content angesehen werden können. Da ist es hilfreich, wenn man die Texte noch einmal vor der Veröffentlichung durch einen Text Spinner bearbeitet.

Auch in dem Fall ist es möglich, einen fremden Text einfach zu kopieren und entsprechend mit Synonymen zu versehen. Es gibt aber Hinweise darauf, dass Google bereits Synonyme erkennen kann und solche Texte demzufolge dann trotzdem als duplicate content wertet. Um einen gut rankenden SEO-Text zu verfassen, reicht also ein schnelles Durchjagen durch den Spinner nicht aus – eigene Recherche ist weiterhin notwendig, der Spinner hilft nur dabei.

Worauf basiert TextGen?

TextGen läuft mit PHP und Laravel 5 im Backend sowie Angular JS und Websockets im Frontend.
Laravel ist aktuell mein liebstes PHP Framework, weil es einfach viele Sachen vereinfacht, eine gute Community hat und es erlaubt, relativ einfach sauberen Code zu schreiben.

Ich setze dabei immer auf Dependency Injections, während ich bis auf in den Views auf statische Facades verzichte. Auch ActiveRecords instanziiere ich nicht wahllos im Code, sondern greife auf ein Repository zurück. Wenn also an der Datenbank hantiert wird, wird immer ein Repository verwendet. Bis auf einer Ausnahme: Beim Auslesen der Synonyme werden raw Da

Artikel gek: Lesen Sie den Rest hier (weitere 10042 Bytes)

Link
Coding – bytelude[Quicktip] Wie kann ich alle installierten Python pip Packages upgraden? (5.7.2016, 18:00 UTC)

Über einen kleinen Umweg kann man auf der Bash ganz einfach alle aktuell installierten pip Pakete updaten / upgraden:

pip freeze | sed -e 's/==.*//g' > upgrade.txt
pip install --upgrade -r upgrade.txt
rm upgrade.txt

Das Script lässt sich alle installierten Pakete ausgeben, entfernt das “==[Versionsnummer]” hinter dem Namen und packt diese Liste in die Datei upgrade.txt. Anschließend wird diese Datei bei einem “pip upgrade” als “requirements.txt” übergeben und mit dem upgrade Befehl ausgeführt.

Flattr this!

Link
Webdesign und TYPO3 Blog aus DuisburgPhpStorm Adding, Deleting und Moving Lines (3.7.2016, 12:51 UTC)

PhpStorm ist die beliebteste Webdevelopment IDE im Bereich der PHP-Entwicklung.

PhpStorm Adding, Deleting und Moving Lines

PhpStorm Adding, Deleting und Moving Lines

Der Artikel „PhpStorm Adding, Deleting und Moving Lines“ richtet sich vor allem an Entwickler, die effektiver und effizienter arbeiten möchten. In der Vielzahl von Shortcuts, Plugins und Möglichkeiten verliert sich leider oft der praktische Bezug wichtige Helferlein für die tägliche Arbeit zu finden. Hier steht natürlich auch die Bearbeitung von ganzen Linien auch im Fokus. Hier kann man mit einigen wenigen PhpStorm-Shortcuts schon sehr viel mehr Geschwindigkeit in seine Arbeit bringen und dadurch auch eine höhere Motivation bekommen.

PhpStorm Adding Lines

Da Hinzufügen – Adding von neuen Zeilen ist denkbar einfach. Man braucht hier nur die Enter-Taste zu benutzen. Dadurch alleine wird schon der Curser an die richtige Position gestellt. Das ist natürlich nichts neues und schon immer auch in anderen IDEs möglich gewesen.

PhpStorm Deleting Lines

PhpStorm Deleting Lines kann man ganz einfach mit CMD+DEL ausführen. Es ist also nicht nötig ganze Zeilen zu markieren und dann mit 2*DEL zu entfernen. Das ganze kann so auch auf ganze Blöcke ausgeführt werden. Hier ist es sinnvoll diese nicht mit der Maus, sondern mit SHIFT-Arrow zu markieren. Generell ist es immer effektiver keine Maus zu benutzen.

PhpStorm Moving Lines

Eine ausgesprochen sinnvolle Funktion ist das verschieben von Lines oder ganzen Codeblöcken. Mit CMD+Shift+Arrow kann man die Blöcke schnell hoch und runter bewegen und mit Block oder SHIFT+Block richtig einrücken. Das braucht man vor allem beim Code-Refactoring.

PhpStorm Duplicate Lines

Copy & Paste sind böse und können schnell sehr schlechten Legacy Code produzieren. Gerade bei Code-Reviews und Code-Refactoring fällt das immer wieder auf. Natürlich ist es hier viel sinnvoller mit guten Live-Templates zu arbeiten und dadurch Probleme, wie z-B. die falsche Variablen Benennung zu umschiffen. Man sollte hier immer extrem wache sein, da immer bei dem Anwendungsfall wahrscheinlich ein Refactoring direkt möglich ist. Die Tastekombination ist jedenfalls CMD+D.

Fazit PhpStorm Adding, Deleting und Moving Lines

Zeilen zu bearbeiten ist wohl genau das was Webdeveloper den ganzen Tag machen sollten. Hier kann man mit einigen wenigen Shortcuts wesentlich effektiver und auch genauer arbeiten. Vor allem das verschieben und duplizieren von Code ist ein mächtiges Werkzeug mit dem man viel in kurzer Zeit bewältigen kann. Es ist wichtig naben dem Entwicklungsprozess mit dem Ziel der Fertigstellung auch immer einen Blick im Bezug auf Clean-Code zu haben. Denn „Later equals never“.

PhpStorm Schulung für Webdeveloper

Das Team von Entwicklungshilfe NRW hat sich schon lange intensiv mit den Shortcuts auseinander gesetzt und bietet hier eine Schulung für Best-Practice an. Hier geht es zu der PHP-Schulung für PhPStorm.

Der TYPO3 Webdesign Blog PhpStorm Adding, Deleting und Moving Lines erschien zuerst auf Webdesign und TYPO3 Blog aus Duisburg.

Link
PHPUGFFMDanke an die Sponsoren des PHPBBQ (30.6.2016, 05:29 UTC)

Herzlichen Dank an cocomore und shopware für die Unterstützung des PHPBBQ!

Ohne euren Einsatz wäre es nicht möglich diese Veranstaltung durchzuführen!

Link
PHPUGFFMDas PHPBBQ steht (30.6.2016, 05:27 UTC)

Alles ist unter Dach und Fach! Das PHPBBQ wird am 16. Juli im Licht- und Luftbad (LiLuBa) Riederwald stattfinden.

Alkoholfreie Getränke und selbstgebrautes, Würstchen (im Brötchen) und einen Grill für deine eigenen Sachen sind vor Ort vorhanden (Danke an cocomore und shopware an dieser Stelle), für die Gute Laune müssen wir selbst sorgen

Damit ihr wisst, auf was ihr euch einlasst, habe ich heute nachmittag mal ein paar Fotos vor Ort gemacht. Platz genug ist, für die großen und kleinen Kinder gibt’s genug zu turnen und zu spielen, und wenn es wider allen Erwartungen und bisherigen Erfahrungen doch etwas feuchter von oben werden sollte, gibt es einen großen überdachten Bereich, den wir eventuell sogar mit einem großen Pavillon erweitern können.

Es ist also alles da, nicht nur für die Nerds, sondern auch für deren Anhang.

Wie kommt man und frau nun zum LiLuBa Riederwald? Am besten mit öffentlichen Verkehrsmitteln! Mit der U4 oder der U7 Richtung Enkheim bis zur Schäfflerstraße und dann noch etwa 900 Meter zu Fuß. Die genaue Lage findet ihr auf der Veranstaltungsseite.

Mit dem Auto könnt Ihr bis in den Volgersbrunnenweg bis zur Schranke fahren, der Rest ist dann auch Fußarbeit. Alternativ gibt es auch einen Zugang von der Riederspießstraße aus (Metro). Parkmöglichkeiten müsst ihr dann vor Ort prüfen.

Hier ist noch eine Afahrtskizze:

Anfahrt_Flohmarkt_LiLuBa

Link
Webdesign und TYPO3 Blog aus DuisburgE-Mail über Terminal CLI Linux versenden (26.6.2016, 10:37 UTC)

Webapplikationen haben den häufigen Anwendungsfall E-Mails versenden zu müssen.

E-Mail über Terminal CLI Linux versenden

Debian Logo

Das ist vor allem bei einer User-Verwaltung nötig. Registrierung und PW-Vergessen Funktion sind hier mögliche Anwendungsfälle. Aber auch der Newsletter ist ein typischer Anwendungsfall. Damit man hier eventuelle Fehlerquellen ausschließen kann ist es wichtig eine E-Mail über Terminal CLI Linux versenden zu können und damit serverseitig sicherzustellen, daß es geht.

E-Mail über Terminal CLI Linux versenden Debian mit mail

Bei mir ist ein häufiger Anwendungsfall ein Debian Webserver. Hier kann man mit dem mail-CMD testen, ob der Mail-Versand geht. Grundsätzlich gibt es hier eine kurze und eine lange Form.

Schneller Test E-Mail über Terminal CLI

echo "this is the body" | mail -s "this is the subject" "to@address.de"

Mit dem oben aufgeführten CLI-Command wird eine E-Mail an to@adress.de mit dem Betreff „this is the subject“ und dem Body „this is the body versendet“.

Ausführlicher Test E-Mail über Terminal CLI

mail -s "hello" "example@example.com" <<EOF
hello
world
EOF

Dazu kann man auch einen ausführlicheren Test machen, hier kann man ggf. konkret einen HTML Versand testen und einfacher einen komplexeren Body-Tag einführen.

Weiferührende Links E-Mail über Terminal CLI Linux versenden

Linux mail command examples – send mails from command line

5 Ways to Send Email From Linux Command Line

Debian Server professionelles Webhosting

Wir machen seit Jahren Webhosting als Dienstleistung und bieten hier einen sehr guten Support für einen sehr fairen Preis. Gerne können wir hier helfen. So haben Sie Ihre Daten sicher im Griff und können auch jemanden erreichen, wenn man etwas ist. Alle Infos zu dem Angebot gibt es hier Webhosting für TYPO3 und Magento.

Der TYPO3 Webdesign Blog E-Mail über Terminal CLI Linux versenden erschien zuerst auf Webdesign und TYPO3 Blog aus Duisburg.

Link
Webdesign und TYPO3 Blog aus DuisburgCodeception POST raw JSON string (20.6.2016, 08:21 UTC)

Codeception ist ein PHP Testing Framework mit dem man neben Acceptance-, Functional- und Unit-Tests auch API Schnittstellen testen kann. Dafür können u.a. sehr einfache Post- oder Get-Requests ausgeführt werden und zudem auch alle anderen Route Requests. Bei älteren Applikationen ist es jedoch manchmal erforderlich noch nicht einen standarisierten JSON-Request auszuführen, sondern einen in einem Raw-Json-Format. Daher heute das Thema „Codeception POST raw JSON string“.

Codeception POST raw JSON string Header Request anpassen

Im Kapitel 10 der sehr guten Codeception Dokumentation Testing WebServices gibt es ein einfaches Beispiel für einen POST-Request.

<?php
$I = new ApiTester($scenario);
$I->wantTo('create a user via API');
$I->amHttpAuthenticated('service_user', '123456');
$I->haveHttpHeader('Content-Type', 'application/x-www-form-urlencoded');
$I->sendPOST('/users', ['name' => 'davert', 'email' => 'davert@codeception.com']);
$I->seeResponseCodeIs(200);
$I->seeResponseIsJson();
$I->seeResponseContains('{"result":"ok"}');

Hier wird auf der Route „/users“ via POST-Request nach einem bestimmten User gesucht. In diesem falle wird der Request standarisiert ausgeführt und die Daten im data-Key übertragen. Leider gibt es immmer noch Applikationen, die das aktuell noch nicht unterstützen und einen POST im raw-Json-Format oder auch Plaintext genannt benötigen. Die erfreuliche Nachricht hier neben der Tatsache, daß es geht, ist das es sehr einfach zu implementieren ist und der oben abgebildete Code dafür gar nicht geändert werden muß. Er kann also so auch für ein Refactoring erhalten bleiben. Stattdessen muß nur vorher das Header-Format für den Request angepasst werden. Dafür müß über dem Code nur eine Zeile ergänzt werden.

$I->haveHttpHeader('Content-Type', 'application/json');

Fazit Codeception POST raw JSON string

Codeception ist gerade für PHP-Webdeveloper sehr interessant. Das liegt an den tollen Möglichkeiten neben der einfachen Syntay auch ihr komplexes Wissen beim Thema PHP anwenden und implementieren zu können. So kann man im Falle von API-Tests mit Codeception sehr einfach eine Basisklasse implementieren an die man nur noch Parameter übergibt und dadurch die Requests zentral steuert. Dadruch kamm nam auch einfach ‚format‘ => ‚raw‘ nutzen und muß den Header nicht immer neu setzen.

Codeception auf Talks und Schulungen

Codeception Logo

Codeception Logo

Als Dozent bei der Entwicklungshilfe NRW ist mein Arbeitssschwerpunkt die Software-Qualität und ich bin sehr erfahren und überzeugt in der täglichen Arbeit mit Codeception. Hierfür halte ich regelmäßig Vorträge auf User-Groups und biete auch Schulungen an. Dabei ist besonders das Starthilfe-Paket herauszuheben. Alle Termine gibt es u.a. auf dem Twitter Kanal von Rogoit.

Codeception für das aktuelle Projekt

Rogoit erstellt auch direkt Tests für bestehende Projekte und implementiert eine Build Pipeline. So startet man schnell in eine professionelle und effektive Art der Software-Entwicklung. Zum Angebot geht es hier.

Der TYPO3 Webdesign Blog Codeception POST raw JSON string erschien zuerst auf Webdesign und TYPO3 Blog aus Duisburg.

Link
Webdesign und TYPO3 Blog aus Duisburg7 Tipps von Webdevelopern für Designer (12.6.2016, 11:08 UTC)

Es gibt immer wieder Missverständnisse zwischen Webdesignern und Webdevelopern. Das liegt an den sehr verschiedenen Betrachtungen und Blickwinkeln von Aufgaben beim Webdevelopment. Hier sollte auch nach Möglichkeit eine direkte Kommunikation miteinander stattfinden und das nicht noch über einen Projektmanager vermittelt werden. Das bedeutet in diesem Falle einen Informationsverlust der nachher mit viel Arbeitszeit und auch Reibungen in einer sehr kritischen Projektphase. Mit diesen 7 Tipps von Webdevelopern für Designer möchte ich ein wenig dazu beitragen diese Barrieren abzubauen und dadurch einen Entwicklungsprozess zu verbessern.

Skalierbar bleiben

Ein einfaches kleines Design an einen Entwickler zu übergeben und umsetzen zu lassen ist natürlich möglich. Hierbei ist es allerdings sehr wichtig von Anfang an auch abzubilden, wie man sich in Zukunft weiter entwickelt. Also welche Elemente und Features sind für eine Startseite in Zukunft geplant. Wieviele Spalten bekommt das Layout. Welche Inhaltselemente werden bei dem Responsive Design auf Smartphones priorisiert und welche werden ausgeblendet? Diese Fragen sollten im Vorfeld durchdacht und geplant werden. Beim Webdevelopment ist es nicht so einfach ein zusätzliches Element einzufügen, wie es mit Photoshop möglich ist. Technisch ist ein Design immer dynamisch und in festen Vorlagen oder Templates umgesetzt. Hier muß such auch gefragt werden was ist wenn eine Headline doppelt so lang ist oder ein Bild im Hoch- oder Querformat verwendet wird.

Den Kunden mit einbeziehen und klicken lassen

Der Kunde hat auch wenn er es nicht sagt doch eine konkrete Vorstellung von dem Webdesign und der Funktionalität eines Webdesigns. Jetzt werden in der Regel Designs in grafischen Vorlagen erstellt und vorgelegt. In genau diesen Gesprächen werden allerdings kaum Fragen zum Thema Usibility gestellt oder beantwortet. Das sollte man aber tun. Denn hier entstehen sonst beim Ergebnis schnell Missverständnisse. Und es entstehen Mehraufwände für die sich keiner der beiden Parteien verantwortlich fühlt. Daher ist es sehr sinnvoll vor der finalen Entwicklung einen Prototypen zu produzieren und unterschiedliche Szenarien mit möglichst realem Content abzubilden. Das erspart in der Entwicklung viel Zeit und beschleunigt den Prozess insgesamt.

We believe the pre-development part of the project is almost equally important as the development itself. In Xfive, we are dedicated to understanding the customer’s needs from the early discussions on the project, so that later on, our project management team can choose the proper solutions for each client” says Milosz Bazela, COO, Xfive

Kosten im Blick und transparent halten

Aufwände beim Webdevelopment sorgen immer wieder für große Missverständnisse. Das liegt an dem geringen Verständnis für die Arbeit hinter den Kulissen. Es müssen hier Aktualisierungen und Wartungen durchgeführt werden. Neue Features müssen sauber implementiert werden und redundante Prozesse zusammengeführt und optimiert werden. Nur so können langfristig alle Anforderungen an eine Software implementiert werden. Daher müssen Features nicht am gleichen Tag ihrer Idee implementiert und ausgerollt werden. „Gut Ding braucht Weile“. Hier ist ebenfalls ein Dialog wichtig, damit das Projekt effizient bleibt.

Laut einer Umfrage des österreichischen Softwareunternehmens Compuware Austria ist schlechte Softwarequalität dafür verantwortlich, dass fast drei Viertel der europäischen Unternehmen zusätzliche Kosten von bis zu 500.000 Euro im Jahr beklagen müssen. Never Code Alone Blog

Übersichtlich Arbeiten

Ein Webdeveloper muß sich auch in der Arbeitsweise eines Webdesigners zurecht finden können. Daher benennt eure Files und Ordner logisch und nachvollziehbar. Haltet den Arbeitsprozess sauber, damit sich hier jeden schnell zurecht findet und eure Arbeit auch verstanden werden kann. Nur so kann man gemeinsam Arbeiten und sich nicht nur bei Ergebnissen und Starts unterhalten.

Redet miteinander

Das persönliche Gespräch ist sehr wichtig und auch der praktische Austausch. Schaut auch auch ruhig mal bei der Arbeit gegenseitig über die Schulter und entwickelt so mehr Verständnis miteinander. So werden Details klarer und auch die Ziele werden herausgestellt und finden Beachtung. Nicht einfach nur stumpf runter arbeiten.

Zwischenergebnisse beurteilen

Artikel gek: Lesen Sie den Rest hier (weitere 3283 Bytes)

Link
LinksRSS 0.92   RDF 1.
RSS 2.0 Feed   RDF 1.
100% Planet PHP   PHP5 powered
PEAR powered  
Code wird von Planet-PHP zur Verfügung gestellt. Vielen Dank.