Montag, 10. April 2017

Nachtrag zum letzten Eintrag

Nach reiflicher Prüfung und aufgrund der langsamen Schreib- und Updategeschwindigkeit der Datenbank kommt redis mit auf die Liste der verwendeten Software.

Als Schnittstelle zwischen PHP und redis werde ich predis von Daniele Alessandri verwenden. predis ist ein redis Client, der komplett im PHP geschrieben wurde und somit kein eigenes PHP Modul benötigt. Ideal für die integration in ein bestehendes System also.

Mittwoch, 5. April 2017

Neue Version von rubensfan.de online gestellt

In den letzten Monaten habe ich mich in mein Büro eingeschlossen, das Telefon abgestellt und den Unterbau von rubensfan.de komplett modernisiert.
Während dieser Zeit gab es auch für mich - jemand der seit 1997 mit PHP zu tun hat -  auch einiges Neues zu entdecken. Vor allem, was Performance, Codeverwaltung, Tests und auch das Softwaredesign angeht. Für diese Art der Anwendung habe ich einige, effiziente Methoden entwickelt.

Generelles Ziel ist es, 95% der Seiten von rubensfan.de mit einem Webserver und einem Datenbankserver in weniger als 0,25 Sekunden an den Nutzer ausliefern zu können. Auch wenn 1200+ Nutzer gleichzeitig online sind.

Zum Einsatz kommt nginx, php mit php-fpm, MariaDB und memcached auf einem Linuxserver.

Wie ich das anstelle, werde ich in nächster Zeit in loser Folge hier berichten.


Mittwoch, 10. Dezember 2014

HTML Elemente mit einen festen Seitenverhältnis anzeigen

Heute bin ich über ein Blog gestolpert um HTML Blockelemente mit Hilfe von CSS in einem festen Seitenverhältnis zu formatieren. Dabei ist es egal, ob das Element quadratisch, also so breit wie hoch sein soll oder ob ein anderes Seitenverhältnis (4:3 oder 16:9) gewählt werden soll. Dieser nützliche Link wander daher gleich in den Werkzeugkasten

Den Artikel findet Ihr hier:

http://www.mademyday.de/css-height-equals-width-with-pure-css.html
 

Dienstag, 9. Dezember 2014

Zufällige Zeichenkette in JavaScript erzeugen / Random String in JavaScript

Ein wie ich finde ein netter Ansatz ist die Erweiterung des JavaScript String Objekts um aus einer Zeichenkette einen zufälligen String der Länge n zu erzeugen:


 String.prototype.random = function(n)  
 {  
      var r = '';  
      for (var i = 0; i < n; i++)  
           r += this[Math.round(Math.random() * (this.length - 1))];  
      return r;  
 }  
 console.log('0123456789abcdefghijklmnopqrstuvwxyz'.random(50));  
 console.log('0123456789abcdef'.random(50));  
 console.log('Lorem ipsum dolor sit amet'.random(50));  

Dienstag, 19. Februar 2013

Positive Überraschung im Dell Support Bereich

Nachdem ich vor ein paar Tagen meinen Unmut über die Pagnierung des Dell-Onlineshops von mit gegeben hat, gab es heute eine angenehme Überraschung auf Dells (englischer) Support-Seite. Im Vergleich zum letzten Besuch vor mehr als zwei Jahren gibt sich die Dell-Supportseite sehr freundlich und übersichtlich gestaltet.

Am Anfang wird einem Nutzer die Frage gestellt, ob man ein Servicecode parat hat oder ob man sein Model anhand der Modellbezeichnung auswählen will. Der Servicecode ist eine ID, mit deren Hilfe es möglich ist, das Gerät und die verbaute Ausstattung auch noch nach Jahren zu identifizieren. Sehr praktisch, wenn man nicht mehr genau weiß, welche Dinge in dem fast drei Jahre altem Notebook drinstecken. Unpraktisch ist allerding wenn der Servicecode auf der Unterseite des Geräts steht.

Aber auch mit der manuellen Auswahl ist man nicht aufgeschmissen. Es wird klar und übersichtlich durch die einzelnen Auswahlschritte geführt und ich konnte die Treiber für mein Modell schon nach wenigen Mausklicks sehen. Für den Fall, dass ich nicht weiß, welche Hardware verbaut ist (in meinem Fall gab es Probleme mit dem Bluetooth Treiber) wird ein extra Tool zu Systemerkennung angeboten. Selbst für mein ehemaliges Notebook (ca. 13 Jahre alt) gibt es übrigens noch Treiber.

Im Vergleich zum letzten Besuch auf der Dell-Support Seite hat sich sehr viel getan, dafür ein großes Lob. Allerdings gibt es noch ein paar kleine Verbesserungsmöglichkeiten:
  1. Die Support-Startseite fragt, ob man Privatkunde, Unternehmen oder Rechenzetrum ist, was meiner Meinung nach zu Unklarheiten führen kann. Es gibt auch Privatkunde, die sich für ein Latitude Notebook entscheiden ;-)
  2. Es ist nur eine Suche nach der Service-Tag Nummer möglich, sinnvoll wäre sicherlich auch eine Suche nach dem Produkt selbst, z.B. "Latitude E 6410", da muss man zumindestens nichts drehen und wenden um an die Service-Tag Nummer zu kommen.
  3. Viele Einträge in der Treiber-Liste haben den Namen "Dell Driver" oder "Dell Application", es wäre schön, wenn man wüsste, was sich denn genau dahinter versteckt.

Mittwoch, 13. Februar 2013

Was ich bei Firefox vermisse

Ich bin Firefox-Fan. Schon seit dem mehr oder weniger direktem Vorgänger Netscape Navigator, also bereits seit etlichen Jahren. Ich mag den Firefox, weil er auf den ersten Blick Unabhängig von großen Hard- und Softwareherstellern erscheint und weil er sympathisch ist. Jeder hat eben seinen Lieblingsbrowser ;-)

Nur leider vermisse die Möglichkeit zum Start getrennter Sitzungen (Sessions).

Als Webentwickler stehe ich oft vor der Aufgabe, Seiten aus verschiedenen Benutzersichten zu testen. Gerade in der Entwicklungsphase von Projekten ist es dabei sinnvoll, zwischen einzelnen Ansichten hin- und herschalten zu können. Leider hat in einer Firefox Instanz jedes eigene Fenster und jedes Tab Zugriff auf eine Session. Daher ist es leider auch nicht möglich in einem neuen Tab ein Projekt mit einer neuen Session aufzurufen.
Im Internet kursieren zwar Anleitungen, dass es möglich ist, mehrere FF-Instanzen gleichzeitig zu starten, denen jeweils ein anderes Profil zugrundeliegt, aber als optimale Lösung sehe ich das nicht an.

Vielleicht besteht ja in Zukunft die Möglichkeit, aus einer bestehenden Firefox-Instanz ein "isoliertes" Tab zu starten, das keinen Zugriff auf den Rest des Browsers hat.

Freitag, 8. Februar 2013

Paginierung - Aufteilung der Suchergebnisse auf mehrere Seiten

Heute ist mir mal wieder wieder aufgefallen, wie sinnfrei manchmal die Aufteilung der Suchergebnisse auf mehrere Seiten sind (Paginierung). Bei einer Suche im Dell-Onlineshop habe ich mich für die Produktgruppe "Laptops mit 14 Zoll Display" interessiert. In der dynamisch geladenen Ergebnisliste wurde mir 46 eventuell passende Produkte angezeigt. Als Mensch, der lieber in einer langen Liste mit der Maus scrollt, anstatt viele kurze Listen auf vielen Seiten durchzuklicken, wollte ich natürlich alle 46 Produkte auf einer Seite darstellen lassen. Leider bot Dell in der Suche aber nur die Möglichkeit an, entweder 30 oder 40 Produkte auf einer Seite anzeigen zu lassen. So eine Auswahl macht natürlich Sinn und rechtfertigt ein weiteres Element in der Ergebnisliste (Bitte die Ironie erkennen) Interessanterweise wird die Liste clientseitig per JavaScript aufgebaut und kontrolliert, zumindestens kommt es mir so vor. Darum wundert es mich noch mehr, dass es kein automatisches Nachladen der weiteren Produkte gibt, sobald man das untere Ende der Suchliste erreicht habt. Andere können es doch auch und ich persönlich finde es praktischer, als ein ewiges klicken von Seite zu Seite.
 Ich mag Dell, daher finde ich es schade, dass ein Händler, der so stark auf Direktvertrieb setzt, so ein unpraktisches Shopsystem bietet.

Märklin, meine nächste Lieblingsmarke macht es meiner Ansicht nach auch viel nicht besser. Der Onlineshop unter http://www.maerklinshop.de/ bietet zwar die Möglichkeit, 10, 20, 50 und 100 Produkte auf einer Seite darzustellen, was wirklich sinnvoll ist. Die unter http://www.maerklin.de/de/produkte.html abrufbare Märklin Produktdatenbank bietet aber wiederrum nur die Darstellung von 10,20,30 und 40 Produkten. Dazu kommt, dass diese Einstellung nicht übernommen wird, sondern bei jedem Wechsel in der Produktkategorie neu vorgenommen werden muss.

Bitte liebe Verantwortlichen: Das könnt Ihr besser!