Vögeln Ade…


… zu sagen ist das, was einem übrigbleibt, wenn man sich von den kleinen (oder auch großen) Piep(s)mätzen dieser Erde verabschieden will. Es hat sich nämlich wohl erst einmal ausgezwitschert und ausgeschnattert…

Denn:
Twitter war einmal.
Vorbei – aus – Ende.
Nichts – nix – nada – nothing – nüscht mehr… :-(

Kaum habe ich mit unserem cURL-basierten, datenschutzkonformen Social-Media-Panel (siehe Wenn man sich schon mal freut…, 2-Klick-Lösung als Beta 2, Ahnungslose Anwälte verbreiten unabsichtlich Unsinn? und last but not least Facebook und Konsorten vs. Datenschutz) den Sprung von der 3er zur 3.1er beta gewagt, tauchte bei den Vögelheinis nur noch ein Fragezeichen auf…

Mal ganz davon abgesehen, daß Apfel-Telefone a la iPhone 4 scheinbar irgendwie zu bequem sind, base64-codierte Minigrafiken richtig anzuzeigen… – beim exzessiven Bugfixing durfte ich feststellen, daß es gar nichts (gleich freut sich meine Deutsch-Lehrerin riesig….. Achtung:) “bugzufixen” oder (damit zumindest ich keinen Horchlappen-Katarrh bekomme….) “zu bugfixen” gibt…

Der cURL-Getter war im Plugin am richtigen Platz; er funzte… – und lieferte einen Fehler 404:

http://urls.api.twitter.com/1/urls/count.json?url=xxxxxxxxx ->
{"errors":[{"message":"Sorry, that page does not exist","code":34}]}
  

Also war Twitter schuld! Der URL-Aufruf dort lieferte nur noch Schrott!

Was war geschehen?
Das mit dem Twitter-Count per Zwitscher-API hat sich wohl erledigt: Das war einmal – zumindest seit dem Twitter-Update vom 20. Nov. 2015. Mit dem dunkelblauen neuen Design begann die Götterdämmerung… – zumindest für mich. :-(

Aber aufzugeben ist nicht mein Stil. Also ran an das 1.1er API…

OAuth & Co… Herrlich!
Twitter selbst bietet zwar “Deutsch” als Sprache an, liefert allerdings trotzdem nur unverständlichen englischen Müll aus. Gut – daß man bei Twitter eh nicht so richtig durchsieht, zeigte ja bereits der Grund für den Beitrag Twitter-Bug: E-Mail-Bestätigung (Workaround))… Da verkraftet man als User leicht nicht-funzende Menüs und freut sich schon, wenn man überhaupt was zu sehen bekommt… Aber bis ich den englischen, (mir) unverständlichen API-Doku-Müll kapiert habe, werden wohl Wochen vergehen. Und das, obwohl mir fachliches Englisch eigentlich liegt…

Sagen wir es mal so: “Unverständlicher Müll” ist wohl etwas zu hart. Die Infos sind trotz des Gesamtumfangs der API-Doku auf den ersten Blick kurz und knackig und bieten gemäß meiner trotz allem neutralen (aber hier nicht geposteten :-) – mal meckern muß ich schließlich auch… ) Meinung wohl schon durchaus das, was man so braucht…

Allerdings versteht diese API-Doku wohl nur jemand, der schon seit Jahren Twitter-Apps entwickelt – oder mein scheinbar ohnehin dementes Hirn ist irgendwie mittlerweile noch mehr vergammelt. Den Einstiegspunkt für Neulinge habe ich trotz allem bisher nicht finden können…

Denn trotz des API Console Tools und der natürlich von Twitter NICHT verlinkten @abraham’s PHP twitteroauth Library sehe ich jetzt – nach ca. 2 Stunden – KEINEN Stich, was ich mir wie auslesen kann. Gut, COUNT gibt es nicht mehr – das habe ich durchaus schon begriffen! Also werde ich keine oder zumindest kaum Zahlen finden, selbst wenn ich das API verinnerliche… Aber ich würde gern mal über STATUS schauen, was man überhaupt so abgreifen kann. Und dazu bin ich scheinbar zu blöd. :-(

Und das ist dann also DIE Erkenntnis, nachdem ich zähneknirschend meine Telefonnummer rausgerückt habe, nur um mich als Developer anzumelden, damit ich auch sowas wie einen Consumer Key (API Key) und ein Consumer Secret (API Secret) für meine Application Settings habe??? Und natürlich ein nur kurzzeitig gültiges Access Token samt eines Access Token Secrets???  Häh? Timestamp-basiert oder was?

Ich trete nachher wahrscheinlich dem BUND bei. Denn derzeit stehe ich scheinbar erst einmal richtig im Wald. Keine Ahnung, in welcher wichtigen Stunde ich nicht aufgepaßt habe, nur weil ich für den Lehrer Kreide holen sollte… Aber man hilft ja gern – und DAS habe ich jetzt davon…

Scheiß Vögelei !!! ;-)

Chronologie eines Dramas


Was bisher geschah:

Unsere liebliche Dicklichkeit – also ich – im Freudentaumel: Der erste “umgemodelte” und persönlichen Bedürfnissen angepaßte Online-Shop aus dem Hause Shopware fristet unter meinen Fittichen seit X Stunden und Y Minuten sein Dasein im Netz – wobei X kleiner als wenig ist und Y nicht weiter ins Gewicht fällt. Ein ganz frischer Frischling, sozusagen…

Es wurde natürlich alles getestet; alles “funzte” – nur ein paar Seiten und/oder Übersetzungen für die unter uns weilenden Englischländer und sonstige ausländisch sprechende Klientel sind noch von Nöten. Solcher Pillepalle-Krimskrams wird natürlich noch nachgerüstet. So zumindest der Plan.

Ich also stolz wie Oskar… Leicht fassungslos auf die Frühstückseier starrend, die aus Kostengründen gespiegelt anstatt gestreichelt wurden  (Kunststück – wurde doch die potentielle Streichlerin auch aus Kostengründen eingespart), trötet doch tatsächlich um
09:25 Uhr morgens – also mitten in der “Nacht” (zumindest für Nachteulen-Nerds und diejenigen, die es werden wollen…) – das Handy-Dingens… Eine frisch gesimste Simse, die mir die zwölf soeben zum “Abendbrot” inhalierten Frühstückseier förmlich wieder aus dem Mund fallen ließen (ich wollte nämlich gerade nach durchmachter bzw. -wachter Nacht ins Bettchen):

“Moin! Der BMOA-Shop funktioniert nicht richtig. Versuch mal, verschiedene Artikel in den Warenkorb zu packen!”

Na ich dachte ja, ich spinne! Es ging doch alles! Mir sprangen bis dato vor Stolz über ein funzendes Etwas  gerade eben fast noch die Knöppe vom Hemd – wegen der stolz geschwellten (Scheiß Deutsch – eigentlich “geschwollenen”) Brust… Un’ nu? (Viel besserer Deutsch.)

Also ließ ich die Eier Eier sein – und stürzte mich auf den Shop. Die Datenbank(anfragen) war(en) so buggy, daß nicht einmal der (natürlich in der DB hinterlegte) Wartungsmodus griff. GEIL !!!  Unterm Strich ging nix mehr richtig – und der Rest falsch oder gar nicht.

Ich war leicht verwirrt – und hatte Quadrilliarden von Fragezeichen in den Augen: Äh – wollte ich nicht gerade – trotz der offensichtlichen Mängel (welches Shopsystem hat die nicht…) – ein Fan von Shopware werden? War ich nicht trotz aller Unzulänglichkeiten geneigt, das System für gut bis oberaffentittengeil zu befinden? Innerhalb von 2 Monaten nach dem Erstkontakt kritzelte ich godlike in den Templates rum – oder, wenn das nicht reichte – erstellte ich Plugins… (Ok, zwar nur “Alpha”-Versionen – aber immerhin!) Zumindest sind schon mal 2 von 3 Plugins live im Einsatz…

Aber was zum Teufel war los? Ich bin zwar keine Lady – aber bin ich denn trotzdem schon gaga? Denn normalerweise lege ich meine Hand für Sachen, die ich mache, ins Feuer. Bei Eigenproduktionen/-kreationen sowieso – und bei fremden Sachen, in  die ich mich nach und nach eingearbeitet habe, zumindest nach bestem Wissen und Gewissen….! Und bei Shopware hatte ich eigentlich ein gutes Gefühl. Leider wird zwar bei Version 4 immer noch nicht das Versandkosten-Splitting genutzt; und auch die Länder-Zonen entpuppen sich als purer Blödsinn, solange ich sie bei den Versandkosten nicht nutzen kann…  Manche Variablen oder SQL-Queries überfordern beim Erstkontakt auch etwas.

Aber unterm Strich eigentlich Spaß – solange dieser eben nicht getrübt wird. Und wenn dat janze Zeugs nich funzt, dann ist das nicht nur “extrem unlustig” – nein; dann ist der eben erwähnte Spaß auch nicht nur getrübt – sondern pechschwarz verdunkelt !!!

Und der Spaß blieb vollends auf der Strecke, nachdem sich der Inhalt der SMS bewahrheitete: Mehr als einen Artikel in den Warenkorb zu legen funktionierte nicht mehr. Und selbst bei einem war es Glückssache. Shopware hing… und hing… und hing.

Der Warenkorb öffnete sich nicht !!!

Ich also in heller Aufgregung. Verständlich… – mein jüngstes Baby war krank und drohte am plötzlichen Kindstod zu sterben… Anstatt deshalb zum Psychoschwätzer zu rennen und für teures Geld einen One-Man-Quickie auf der legendären Couch hinzulegen, stürmte ich natürlich an einen meiner Rechner, um lieber selbst teures Geld zu verdienen – oder es zumindest wert zu sein… Ich mußte also unbedingt ins Netz – und bzw. um dem Grauen (auf Kosten meines Namens….) einen Riegel vor(zu)schieben…. Gut gedacht – aber der Wartungsmodus funzte ja nicht gleich… Also Operation am offenen Herzen – live, vor aller Augen. Aber egal! Hauptsache, der Fehler ist bald keiner mehr.

Ich machte also ALLES, was ich die letzten Tage impelemtiert habe, Schritt für Schritt rückgänig – vom datenschutzkonformen Social Media-Plugin “ITC-SMP” v3.0 Alpha a la Me-&-MySelf über Google Analytics und Quantcast… Ich deaktivierte neue Kategorien, neue Blogs, neue Artikel.

Nach jedem Schritt:

• raus aus dem Artikel-hinzufügen-Modus bzw.
• raus dem Warenkorb
• Cache über das Shopware-Backend leeren oder
• Cache mittels PuTTY über SSH leeren
• Cookies löschen

Wow! Das Debugging mutiert zur Klickorgie! Die ekelhafte Meldung “Ups! Ein Fehler…” habe ich dabei wohl 89 Mio mal gesehen….

Wenn man prozeduralen Code schreibt, sind error_reporting ( E_ALL ), var_dump ( ) und print_r ( ) natürlich die Hilfsmittel erster Klasse und auch erster Wahl – erst recht, wenn sie mit X-debug oder <pre>bla…blubb…foo…bar…</pre> aufgepimpt wurden.

Ein solches “Pimping” ist ja schön und gut – und vor allem ja auch gut und schön ;-)   ; und auch wenn man selbst vorrangig OOP betreibt, bleiben die genannten Funktionen im Rahmen EIGENER Programmierung  die erste Wahl. Schließlich kann man natürlich Methoden implementieren, die ein Error-Logging erlauben oder mit Exceptions hantieren und “try-en”, diese zu “catchen”, um sie live auszuwerten.

Spannend wird es eben nur, wenn man sich per se als “De-facto-doch-lieber-prozedural-Progger” zu erkennen gibt  bzw. sich als ein solcher outet – und auf fremde OOP triift !!! Fremder Code ist zwar immer etwas mehr als nur gewöhnungsbedürftig – aber wenn man auf die Schnelle keine Ausgaben erzeugen kann, wird es richtig nervig! Denn den Core verändern? Mit var_dump ( ) und die ( ) ??? Ist das wirklich eine Alternative?

Toll – nutzt aber manchmal nur nichts oder zumindest nicht viel, wenn noch ein PostDispatcher zulangt… Fehlermeldungen werden vom gerenderten Code überlagert. Voher “die( )-en”? Nun ja; wenn man dann Glück hat, wird man wenigstens im erzeugten HTML-Quelltext fündig. Kommt allerdings noch ein Redirect mittels Header(“Location:….”) o.ä. dazwischen, sieht es eher MAU aus. Aber so viel nur mal zu den theoretischen Vorbetrachtungen.

Also ging das Rumgeeier los – passend zu Ostern… Weil ja echo $bla, print_r ( $blubb ) und var_dump ( $foobar ) samt folgendem exit ( ”jo” ) oder die ( “nö” )  wegen der fremden OOP und der ganzen Pre- und PostDispatcherei so mal aben auf die Schnelle ausfielen, mußte also Firebug/FirePHP ran. Aber diese Konsole sollte man wohl nur auf Monitoren mit mind. 186 Zoll Bilddiagonale nutzen. Ach wat – Splitscreen bzw. 2 Monitore. Minimum! Sonst wird es nämlich ziemlich müßig, sich da durchzukämpfen – zumal der Output mehr als gewöhnungsbedürftig ist. Was liebe ich da doch das beruhigende Orange von X-debug-reporteten Fehlern in Kombination mit entspanntem <pre>…</pre>…  Natürlich sind Fehler immer Schiete – aber bei den letztgenannten wird man wenigstens nicht aus der gewohnten Ruhe gebracht… Ommmm…… Und: Ouza…….. Auch Fätt-Boys kennen Bad Boys… ;-)

Screenshot :: Firebug/FirePHPFirePHP, FireBug – toll !!! Genau DIESES kryptische Zeug brauchte ich… Was nutzt es mir denn, wenn “SQLSTATE[42000]aussagt:Syntax error or access violation: 1064 You have an error in your SQL syntax“… Gerade die eben benutzte SQL-Query wäre nämlich extrem aufschlußreich… Und zwar SEHR !!! Ansonsten ist nämlich ein entspannter Nachmittag einfach mal so “WEG”… Oder 2, oder 3… Oder 7 – oder 12!

Mal eben echo $sql bzw. $query und  var_dump ( $result ) anzeigen zu lassen, ist aber nicht ohne Weiteres drin. Ergo: Der Arsch ist erst mal dick….

Screenshot :: Firebug/FirePHPOOP-Horror pur: Ich – und das Sammelsurium aus Zend, Smarty, Doctrine usw. !!!

Nachdem ich dann also schritttweise alles rückgängig gemacht habe…. änderte sich NICHTS . GUT (oder eher das Gegenteil) – ich war es nicht, der Schiete verzapft hat – aber WER oder WAS war es denn bitteschön dann? Schließlich muß es für einen Fehler auch immer eine URSACHE geben…

Nach gefühlten 7 Mrd. Testaufrufen und mind. halb so vielen Quelltext-Beäugungen, warum $sql_select .= ‘, (‘.$calculation.’) as calculation_value_’ . $dispatchID; nun auf einmal einen Syntax-Fehler erzeugen soll, obwohl an der betreffenden Datei NIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIEEEEEEE etwas geändert wurde, kam ich auf den Trichter, daß die Wurzel allen Übels die Versandkostenberechnung war, die scheinbar keine Lust merhr hatte, weiter funktionieren zu wollen. Schließlich gab es schon mal Probleme, als ich mit zusätzlichen Attributen bzw. Freitextfeldern a la boleean (Checkbox) Ticketversand rumexperimentierte. Aus einem gespeicherten

MAX(a.topseller) as has_topseller, MAX(at.attr3) as has_comment, MAX(b.esdarticle) as has_esd, MAX(at.attr4=”true”) as Ticketversand

wurde nämlich beim nächsten Aufruf

MAX(a.topseller) as has_topseller, MAX(at.attr3) as has_comment, MAX(b.esdarticle) as has_esd, MAX(at.attr4=

!!!!

Ob das nun ein simpler Ausgabefehler aufgrund fehlender HTML-Entities war  – oder ob das in der DB passierte – das wissen nur die Götter.  Obwohl mehr für Datenbank spricht (sonst hätte es bei der Berechnung keinen Fehler gegeben) – Datenmüll habe ich nicht gefunden. Möglicherweise aber auch deshalb, weil ich erfolgreich auf einfache Gansefüße alias Hochkommata umstellte:

MAX(a.topseller) as has_topseller, MAX(at.attr3) as has_comment, MAX(b.esdarticle) as has_esd, MAX(at.attr4=’true’) as Ticketversand

Das funzte !!!

Da das aber für Mischversand (Merchandising-Artikel UND Tickets) oder reinen Merchandising-Artikel-Versand nicht richtig funzte, setzte ich unter Einstellungen > Grundeinstellungen > Storefront > Versandkosten-Modul wieder den Standard

MAX(a.topseller) as has_topseller, MAX(at.attr3) as has_comment, MAX(b.esdarticle) as has_esd

Jedenfalls stellte ich dann um 14:15 Uhr fest, daß das gemeldete Problem  EINEINDEUTIG (… wie mein Mathe-Lehrer aus der 8. Klasse, Karl Wellner, gesagt hätte…) auf die hinterlegten Versandkostenregeln zurückzuführen sind. Deaktivierte ich sie oder konfigurierte ich sie lt. Shopware-Doku mit einer eigenen Berechnung gemäß

MIN((SELECT 3 FROM s_articles_categories WHERE articleID=a.id AND categoryID = 7))

, war die Welt in Ordnung…

Einziges Problemchen dabei war, daß es bei manchen Artikeln (Tickets) eben BILLIGER statt teurer werden sollte. Also mußte es

MIN((SELECT 3 FROM s_articles_categories WHERE articleID=a.id AND categoryID != 7))

lauten. Soweit, so gut. Und jetzt wird es “lustig”: Als der erste Artikel im englischen Sprachshop aufgenommen wurde, funktionierten die Versandkosten nicht mehr!  Schnell war als Übeltöter……äh, ich meine natürlich “-täter”…. – wen wunderts – die Versandkostenbrechnung ausgemacht. Denn: Funktioniert etwas nicht, liegt es meist an eben dem, was nicht funktioniert. Also schuf ich nach dem großen “Kopfklatsch” flugs Abhilfe:

MIN((SELECT 3 FROM s_articles_categories WHERE articleID=a.id AND categoryID != 7 AND categoryID != 9))

Und das funktionierte !!! Da bin ich mir 10.000 % sicher, weil ich es ausgiebig getestet habe!

Der Brüller ist, daß es nicht mehr ging, als ich mehr Artikel ins Englische “rüberholte”. Also zum MItmeißeln: wenn ich nicht ganz senil bin, funzte obige Berechnung, solange

im deutschen Shop
• ein Ticket in der Kategorie “Tickets”,
• ein oder mehrere T-Shirts unter “T-Shirts”,
• ein oder mehrer T-Shirts unter “Girlie-Shirts” und

im englischen Shop
• ein Ticket in der Kategorie “Tickets”

hinterlegt waren.

Nachdem ich im deutschen Shop
• die Kategorie “CDs” angelegt und mit 3 Scheiben befüllt hatte,
• in beiden Shops eine Blog-Kategorie “News” einrichtete,
• Google Analytics und Quantcast implementierte
• ein eigenes DATENSCHUTZKONFORMES* SocialMedia-Plugin (Nachfolger unserer nicht mehr weiterentwickelten 2-Klick-Beta) installierte und
• samtliche Artikel des deutschen Shops in den englischen rüberzog – da wurde das Problem bemerkt!

Da Shopware in manchen Templates ein Problem damit hat, wenn Javascripte syntaktisch richtig eingebunden werden, konnte das Problem überall liegen. Erst nachdem ich die eigene Versandkostenberechnung aushebelte bzw. shoptechnisch aka finanzmathematisch unzulässig auf  “… articleID=a.id AND categoryID != 7 AND categoryID != 9…” verzichtete, ging wieder alles. Leider kam ich erst darauf, als ich alles andere rückgängig gemacht habe. Kann ja niemand ahnen, daß die VK schon beim Hinzufügen zum Warenkorb eine Rolle spielen !!!

Diese Berechnung funzte wohl nur so lange, wie ein einziger Artikel in der einzigen englischen Kategorie zu finden war. Ob es die dazugekommenen T-Shirts waren – oder was auch immer… – das Problem waren die VK. Das wußte ich nun. Doch wie das Problem lösen?

Ob das jetzt glaubhaft klingt oder nicht: Ich sagte mir gedanklich so in schönstem bayerisch “Dis stinkt mi an!” – und da kam mir die Idee…. Es gab doch noch so was wie DISTINCT !!! Ob das àuch des Rätsels Löung sein könnte?

Ich machte die Probe aufs Exempel – und wurde belohnt! Mein Problem war keins mehr…

MIN((SELECT DISTINCT 3 FROM s_articles_categories WHERE articleID=a.id AND (categoryID != 7 AND categoryID != 8 AND categoryID != 9 AND categoryID != 13))) FUNZTE !!!

“Nicht-Ticket-Artikel” und Mischversand aus Tickets und anderen Artikeln sind nämlich in diesem Fall (Versand innerhalb Deuschlands) 3 Euro teurer als “Nur Tickets”… Daß mein logisches Empfinden ein wenig mit MIN bzw. MAX kollidiert bzw. hadert und ich gern mal einen kompletten SQL-Query-Output und einen VAR_DUMP des Output-Arrays hätte, sei mal dahingestellt. Natürlich ließe sich das machen – ich wohne ja auch nicht hinter dem Berg – aber eben mit erheblichem Aufwand. Und am Core rumzufummeln ist trotz einer existenten SIK immer hot. Es braucht nur mal zu klingeln – und schon vergißt man irgendwas. Erst recht witzig, weil Shopware-Dateien eine so tolle “Nicht-UTF-8-Codierung” aufweisen… Also am besten Pfoten weg. Eigene Sheets, Templates oder sogar Plugins – das ist was anderes. Soll heißen: Den Kern fasse ich nur an, wenn es gar nicht anders geht. Aber ich hatte ja noch mal Glück… ;-)

16:59 Uhr: Barth – die Frisur sitzt.
17:00 Uhr: Internet – der Shop funzt.

* Zum Thema Datenschutzkonformität:
• Facebook und Konsorten vs. Datenschutz
• Ahnungslose Anwälte verbreiten unabsichtlich Unsinn?
• 2-Klick-Lösung als Beta 2
• Ein Gespenst geht um in Europa…
• Wenn man sich schon mal freut…

Standardwerte


Wenn es um die Übergabe von Argumenten an Javascript-Funktionen geht, ist ja manchmal wünschenswert, Standardwerte vorzubelegen – falls mal nichts übergeben wird, obwohl die Funktion lt. Parameter-Liste an genau dieser oder/und jenen Stelle etwas erwartet…

Wenn man viel mit PHP hantiert, verfällt man sehr schnell auf diese Idee:

function f ( x = 1, y = 2, z = 3 ) {
    alert (x + ' | ' + y + ' | ' + z);
}
f();
f('A','B','C');

Das funktioniert auch – solange man auf Chrome oder Firefox (ab v15) entwickelt. Der Internet Explorer bemängelt allerdings Scriptfehler…
Meldung: ‘)’ erwartet

Aber auch Safari und andere Browser bocken. Bleibt also nur folgendes:

function f ( x, y, z ) {
    // ausführlich
    if ( typeof ( x ) === 'undefined' ) {
        x = 1;      
    }      

    // Kurzform      
    if ( typeof y === 'undefined' ) y = 2; 

    // ternärer Operator      
    z = ( typeof z !== 'undefined' ) ? z : 3;      

    alert (x + ' | ' + y + ' | ' + z);
}
f();
f('A','B','C');

Wenn man nun nicht gerade Werte a la false, null, undefined, 0 oder “” setzen will, kann man es auch ganz einfach handhaben:

function f ( x, y, z ) {   
    x = x || 1;     
    y = y || 2;     
    z = z || 3; 
    alert (x + ' | ' + y + ' | ' + z);
}
f();
f('A','B','C');

Responsive? Nö – repulsive! BUMM !!!


Wer sich mit sogenanntem Responsive Webdesign befaßt, kommt nicht umhin, sich für die Displaygrößen sämtlicher Geräte zu interessieren…

Insofern war ich als Neu-Enthusiast in Sachen “Responsivity” natürlich hocherfreut, auf diese tolle Liste zu stoßen…

Beim ersten Durchsehen stellten sich mir jedoch die Nackenhaare auf – bzw. es rollten sich mir sogar die Füßnägel auf, bevor sie aus den Zehen sprangen!

Ich zerbrach mir im Vorfeld den Kopf, ob denn nun 240 x 320 bzw. 320 x 240 das Minimum wäre… Oder doch 360 x 480?

Schmarrn! Viiiiiiiiiiiiiiiiel zu groß !!!

Die Liste spuckt nach dem ersten Schock  176 x 220 sogar noch 176 x 208 aus !!! Allen Ernstes!

Leuten mit solchen Displays sollte man verbieten, damit das Internetz zu nutzen… Ein extra Stylesheet dafür ist doch nun wahrlich Luxus. Und ein wirklich “liquides” Design für die unteren Smartphone-Display-Größen verlänge dann bitteschön was? 0,2 em ??? Oder ist es ok, bei 1 em nur 3,47529 Wörter in zwei Zeilen zu sehen? Scroll-Marathon?

Sorry – aber ich empfinde die Anpassung von eigenen Fehlerseiten zum Error-Handling schon bei 240 x 320 als extrem gruselig… Alles andere ist, gelinde gesagt, einfach nur widerwärtig und abstoßend – weil schwachsinnig!

Sowas ist für mich ab heute einfach nur noch Repulsive Webdesign !!!

Denn was kommt als nächstes? Online-GTA mit 1.000-Mbit-WiFi-Armbanduhr, Pinzette, Nadel-Joystick und umgeschnallter Kopflupe? So wie eine Helmleuchte – nur tiefer? Die Nerd-Brille?

Oder Online-Shoppimg mittels 7-Segment-Anzeige der vierknöpfigen Quar(t)z-Uhr aus Ruhla? EVP 495,- M zu DDR-Zeiten? Ost-Tic-Tac (oder auch nicht) meets Web-Zeitalter?

Ein solarbetriebener Blu-Ray-Player mit Gürtelclip, um Terminator 1 – 25 mittels 3D-Brille auf der Armbanduhr zu “genießen”? Dazu 2kg-Surround-Kopfhörer und Doppelschwingspulen-Subwoofer im Arsch? Aber ob dann noch genug Sonne  aus letzterem scheint, um die Solarzellen zu füttern?

Ehrlich mal…

Nö, da spiele ich nicht mit. Wenn ich den IE6 stiefmütterlich behandeln darf, soll oder muß, weil nur noch wahrscheinlich von Geiz getriebene, auf jeden Fall aber verantwortungslose Leute [die sich selbst und andere bzw. ihre und deren Daten mit dem veralteten und nicht einmal richtig funktionierenden Browser und einem veralteten OS gefährden] damit online unterwegs sind, dann darf ich ja wohl auch solche Uralt-Handys mit Handkurbel und Riementrieb ausklammern. Warum sollte ich Leuten mit solchen Dingern einen Gefallen tun? WER bezahlt das?

Und ich darf das sagen. Ich habe mein 1997 gekauftes SIEMENS S4 plus bis 2005 oder 2006 genutzt, danach einen Motorroller… äh – ein Motorola RAZR V3 - bis 2011 oder 2012…

Doch nun schüttelt es mich kräftig… Ich bin ja selbst nicht besser! RAZR V3 – Display: 2,2 Zoll bei 176 x 220 Pixeln !!! Aber trotz Browsers und WAP habe ich mir bis heute (ich habe und nutze das Ding noch mit 2ter SIM) verkniffen, mit dem Ding online zu gehen. Schließlich brauche ich dieses Mobiltelefon vornehmlich zum Telefonieren!

Die Facebook-Generation sieht das natürlich komplett anders – aber die kennen solche mini-AKW-betriebenen Handgurken ja auch gar nicht mehr…

Ergo: Ich glaube, ich werde die “Minis” bei meinen Tests und Studien von vornherein ignorieren. Wer heute noch mit solchen Kisten online geht, hat den Knall nicht gehört…

Von daher: BUMM !!! 

Eine kurze Betrachtung: WAUDIT.COM


Wir beleuchten heute an dieser Stelle mal kurz eine sehr nützliche Seite für Webprogrammierer, die sich an Standards halten oder/und hochqualitative Seiten erstellen möchten. Allerdings gibt es einen kleinen, etwas kurios anmutenden Fehler, auf den wir die Seitenbetreiber in Kürze hinweisen werden…Wir sind gespannt, ob sich dann diesbezüglich etwas tut. Wenn ja, gibt es an dieser Stelle ein Update.

Unsittliche Fundstücke


Prolog: Ein Konglomerat des Grauens

Wie wir bereits vor geraumer Zeit an dieser Stelle berichteten, stellte ja die Verbindung zwischen dem IT College Putbus und Unister eine extrem unglückliche Konstellation dar. Zumindest werden das die bisherigen “Opfer” dieses Konglomerats so sehen. Gemeint sind damit die zwar arbeitslosen aber dennoch lernwilligen und motivierten Schüler,  die mit ihren Problemen vom College, vom Arbeitsamt bzw. von den ARGEn relativ alleingelassen wurden und mit deren Hoffnungen und Träumen die Firma Unister  in menschenverachtendster Weise umgegangen ist.

Wir erinnern uns kurz: Ein “modularer” Lehrplan, der den Namen nicht verdient. Geplante (!) OCP-Zertifizierungsprüfungen – 3½ Wochen nach dem ersten Tag “Datenbank-Grundlagen”! Dann noch Zend Framework – ein Thema, das es in sich hat. Und dabei dann 4½ Monate ohne Dozenten in einem ansonsten leeren Raum zu sitzen (und somit lediglich Stillbeschäftigung a la Try & Error zu betreiben) macht ohne vernünftiges Unterrichtsmaterial, ohne richtiges Konzept und mit einem Haufen unbeantworteter Fragen einfach keinen Sinn…  

Schuldfrage

Die Hauptschuld an dieser Misere lag allerdings nicht unbedingt beim IT-College Putbus. Auf Nachfrage wurde immer wieder erklärt, man könne nichts machen – Unister wünsche nicht, daß ein Dozent in die Klasse komme. Learning-by-doing, selbst durchbeißen, kämpfen, begreifen und verstehen lernen… Mit vernünftigem Studienmaterial ist die Idee eigentlich gar nicht so schlecht – außer, man ist in Putbus aufs Internet und auf irgendwelche darüber zu suchen- und zu findenden wilden ZF-Dokumentationen angewiesen und hat eigentlich gar keine Ahnung, wer was warum wie von einem will…

“Da kommt ein richtiger Experte!”

Allerdings wüßte ich jetzt auch gar nicht, wer dieser ominöse, im Vorfeld (aufgrund skeptischer Nachfragen von ITC-”Kennern” in der Klasse) immer wieder fast lautstark angekündigte “Zend-Experte” sein sollte, der uns dann schlußendlich gar nicht unterrichten durfte… Jemanden mit einer entsprechenden Qualifikation (ZCE ZF) sucht(e) man nämlich (zumindest zu unserer Zeit) am ITC vergebens. Ein “Zend-Experte” sollte doch wohl jemand anderer sein als ein PHP-Dozent, der mit 2 Tagen Vorlauf das Framework selbst zum ersten Mal gesehen hat, oder? Jedenfalls mußten wir bitten, betteln und schon fast auf Knien rumrutschen, bis überhaupt mal jemand von Unister nach ein paar Wochen kam, um unsere Fragen zu beantworten – aber dazu gleich mehr… 

Schade ist eigentlich nur, daß das College nicht bei Unister intervenierte und einfach so mitgespielt hat – aber dort hatte man zu der Zeit auch genug eigene und vor allem andere Probleme.

Lachnummer

Jedenfalls entpuppte sich die Maßnahme ja für 70% der Truppe als ziemliche Luft- und Lachnummer – zumindest in bezug auf eine “Karriere” bei Unister.  Dümmer geworden sind wir zwar in der Zeit nicht; es gab auch ein paar OCP- und PHP-Zertifikate abzustauben – aber diese einfach so leichtfertig in Kauf genommene Fördermittelverschwendung hinterläßt bei einem denkenden Menschen trotzdem einen dauerhaft faden Nachgeschmack.

Daß Leute zu verarschen aber scheinbar zur Firmenpolitik von U. gehört, belegen ein Zeitungsartikel und drei Videos, über die ich gestolpert bin – unsere “Fundstücke der Woche”.

“Lüge” ;o)

Die in dem schon etwas älteren und mir zufällig in die Hände gefallenen Artikel erwähnte Betreuung der Klasse bestand darin, ein einziges Mal (wahrscheinlich zum Zweck der Fotoaufnahme) für ein paar Stunden ins ITC Putbus zu kommen und auf alle Fragen ungläubig, mit Schulterzucken oder/und der Standard-Antwort “Macht, wie Ihr denkt” zu reagieren. Mag sein, daß es während meines zweiwöchigen Krankenhausaufenthaltes ein weiteres, großangelegtes “Betreuungs-Event” gab – das entzieht sich aber meiner Kenntnis. Als ich wiederkam und einige Zeit später o.g. Herrn W. erlebte, konnte ich jedenfalls meinen DIN-A4-Fragen-Zettel unbeantwortet zusammenknüllen und wegwerfen – nachdem wir etliche Wochen warten mußten, bis sich überhaupt jemand unser und unserer frechen Wißbegierde erbarmt. Viel Wissen wurde bis zu dem Tag jedenfalls nicht transferiert. Wie das gefordete SVN zu handhaben ist oder wie man sich mit vHosts das Leben erleichtern kann, um nicht in allen möglichen Dateien mit $this->baseurl() rumspielen zu müssen, wußte von den anderen bis dahin niemand. Fairerweise muß man aber anmerken, daß besagter Herr W. ja wahrscheinlich auch nur von jetzt auf eben von Unister dazu verdonnert wurde, mal einen Tag den Babysitter für die doofen Schul-Kiddies zu spielen… Er kannte die Einzelheiten des Projekts NICHT – daher KANN er auch nichts anderes antworten als “… ???”.

Ich hoffe mal, daß man beim OSTSEE-ANZEIGER freundlicherweise die obige kleine Copyrightverletzung (Veröffentlichung von Text und Bild) übersieht. Immerhin verzichte ich ja auch darauf, in bezug auf die Verbreitung dieser fast schon ”schamlosen Lüge” eine Richtig- bzw. Gegendarstellung zu fordern. Und einen Backlink gibt es ja obendrein. ;o) ;o) ;o)

Es ist schon irgendwie witzig, wie einfach und vor allem womit man heutzutage in die Zeitung kommt… Aber der Zeitung ist nichts vorzuwerfen – beim OSTSEE-ANZEIGER hat man natürlich geglaubt, was seitens ITC/Unister kommuniziert wurde! Wir ja anfangs auch…  

Wahrheit

Erst recht witzig war aber übrigens, daß wir PHP 5.3 lernen sollten und die konfus zusammengestückelte Projekt-Aufgabe für PHP 5.2 ausgelegt war. Ein selbst besorgtes Buch zum ZF basierte auf Version 1.7.4; wir lernten und übten wie selbstverständlich Version 1.11 – und geprüft wurde schlußendlich Zend Framework Version 1.5 !!! Wer einmal bei Zend reingeschnuppert hat, wird das Wort “Abwärtskompatibilität” mit ganz anderen Augen sehen…

Jedenfalls kommt derartiges und ähnliches bei Antworten wie “Macht, wie Ihr denkt” raus. Daraus resultierend eine Durchfallquote von sage und schreibe 90% (hätte ein Schüler nach eigenen Angaben nicht zufällig richtig geraten, wären es sogar die kompletten 100% gewesen…), eine Übernahmequote von nur 30% und eine in 6½ Monaten zum großen Teil verschleuderte Fördermittelsumme von mind. 93.472,- Euro für 10 Leute. Übrigens wurde im Nachhinein wieder ein “Qualified PHP Webprogrammer”  von Unisters Programmiererfront abgezogen und in die Bürokram-Division versetzt… Wow! Unister hat also für knapp 100.000,- Euro auf Kosten der Steuer- und SV-Zahler ganze 2 Programmierer von 10 möglichen Kandidaten abgestaubt!  Effektiv sind das übrigens 2 Dozentengehälter (da wir bekanntlich 4½ Monate keinen Dozenten hatten), etwas Heizung und  ein bißchen Strom für einen Beamer, ein paar Rechner sowie ein paar Neonröhren… Ach so: Und anteilig natürlich auch noch ein paar Taler für die Mobgirl-Brigade… ;o)

Über den Verbleib der anderen ca. 90 Mille mache ich mir mal lieber keine Gedanken.

Schadenfreude

Weitere Fundstücke zum Thema “Unister” bzw. “Wie verarscht man Menschen” kann man hier, hier und hier in Augenschein nehmen… Abmahnungen und Verurteilungen wegen irreführender Gütesiegel, versteckter Zusatzkosten, mangelnder Preistransparenz. Razzia, Verdacht der Steuerhinterziehung und des Vertriebs nicht genehmigter Versicherungen, Verhaftungen…

Prompt hat daraufhin der Touristik-Riese TUI den mit Unister bestehenden Agenturvertrag fristlos gekündigt. Da kommt doch bei mir glatt so etwas wie (Schaden-)Freude auf… ;o)

Epilog: Glück

Nach meiner damaligen Enttäuschung war ich eigentlich schnell auf dem Standpunkt, daß ich bei dem Verein nicht glücklich geworden wäre. Wenn ich das heute so überdenke… Stimmt! Ein Glück, daß die mich nicht genommen haben… ;o)

PS: Durch einen Tippfehler (“Unsiter”) ist mir aufgefallen, daß Big U. gar nicht sooo weit von “Unsitte” entfernt ist. Wie unsittlich!

 

 

 

1&1: Umstellung auf neue PHP-Version


Ab dem 01.04.2013 unterstützt 1&1 die PHP-Versionen 4 und 5.2 nicht mehr; daher steht seit einigen Wochen auf den Servern PHP 5.4 zur Verfügung.

Um schnellstmöglich von der neuen PHP-Version zu profitieren, sollte schon jetzt im 1&1-Control-Center auf die neue “Globale PHP-Version” umgestellt werden. Überprüfen Sie anschließend, ob Ihre Webseite und Skripte einwandfrei laufen. Warten Sie mit der Umstellung also nicht zu lange – denn nur so gewährleisten Sie eine einwandfreie Darstellung Ihrer Website und ein reibungsloses Funktionieren Ihrer Skripte.

Bitte beachten Sie, daß in der neuen Version die Option “Register Globals” nicht mehr unterstützt wird. “Antike Skripte”, die noch damit arbeiten, müssen umprogrammiert bzw. ersetzt werden, da sie ansonsten nicht mehr funktionieren!

Außerdem empfehlen wir Ihnen, auf jeden Fall folgende Anwendungen durch ein Update auf den aktuellen Stand zu bringen:

  • Contao
  • Drupal
  • eGroupWare
  • Joomla
  • MediaWiki
  • myorgbook
  • osCommerce
  • phpBB
  • Serendipity
  • Shopware
  • Typo3
  • WebCalendar
  • WordPress
  • XOOPS
  • xt:Commerce