Mitunter möchte man ein Abfrageergebnis nach einer vorgegebenen Liste von IDs sortieren, also weder alphabetisch nach Namen, noch numerisch nach Wert, sondern auf Basis einer konfigurierten Reihenfolge von Werten. Da man in PostgreSQL auch Funktions-Ergebnisse als Argumente für eine Sortierung verwenden kann, können wir eine Hilfsfunktion in der Datenbank deklarieren, über die sich diese Form der Sortierung umsetzen lässt:

Jetzt können wir die Funktion zur Sortierung einsetzen:

Das NULLS LAST stellt sicher, dass Werte die nicht in der Liste enthalten sind ans Ende des Ergebnisses sortiert werden.

Bei sehr umfangreichen Datenmengen kann die direkte Nutzung eines Index für die Funktion sinnvoll sein. Die ist aufgrund der IMMUTABLE-Deklaration auch möglich, allerdings nur für eine spezifische Werteliste, die damit Teil der Index-Deklaration werden muss. Im Normalfall genügt allerdings ein Index auf das verwendete Feld selbst.

In ColdFusion kann auch an dieser Stelle <cfqueryparam> für die Sortierung eingesetzt werden. Wichtig ist dabei, dass hier der richtige Datentyp für die Liste gewählt wird – z.B. wenn die Spalte vom Typ int8/bigInt ist. Auch einfache int-Arrays (cf_sql_integer) oder Text-Arrays (cf_sql_varchar) sind natürlich möglich.

Schönes kleines WTF am späten Nachmittag:

BLAM!

Element STRUCTDATA.DEALIDS is undefined in LOCAL.
The error occurred in /var/www/.../some.cfc: line 120
118 : while( local.objCursor.hasNext() ){
119 : local.structData = local.objCursor.next();
120 : if (structKeyExists(local.structData,'dealIds') && isArray(local.structData.dealIds)) {

Weiterlesen

Nur weil’s gerade einen Kollegen mal wieder gebissen hat: ColdFusion and Pass by Reference versus Value

Kurzfassung: In CF (wie auch in Perl) werden defaultmäßig nur Primitive als Werte zugewiesen, alles andere nur als Referenz. Wenn man z.B. einen Loop baut und den Elementen eines Arrays eine Structure zuweist, kann das dazu führen, dass Werte in anderen Elementen überschrieben werden. Wenn man statt der Referenz also die Werte benötigt, ist duplicate() erforderlich.

Java dagegen nutzt immer pass by value, bei C++ und C# ist das ebenfalls der Default, wobei die mit dem ref-Keyword auch pass by reference unterstützen.

Diese subtile kleine Besonderheit ist immer wieder gut für schöne Brainfuck-Bugs 😉

Dass Google mittlerweile JavaScript liest und mindestens seit Mitte des Jahres auch zumindest teilweise ausführt, dürfte sich herumgesprochen haben. Nachdem seit kurzem in den Webmaster-Tools auch eine Art Mobile-UX-Monitoring verfügbar ist (Suchanfragen -> Benutzerfreundlichkeit auf Mobilgeräten) kam am Donnerstag die Ankündigung, dass Google entsprechend „sauberen“ Seiten ein eigenes „Mobile-friendly“-Label in den SERPs spendiert und außerdem bei der Mobilen Suche auch mit dem Ranking Algorithmus experimentiert.
Weiterlesen

Veröffentlicht unter SEO.


http://www.dev-metal.com/fix-ugly-font-rendering-google-chrome/

Update, June 2014: This issue will be fixed with Chrome 37 (which will be released around July/August 2014)

The Google Chrome dev team has finally fixed this issue and will release it to public with Chrome 37 in July/August 2014 (the date is a rough estimation). Currently, in June 2014, Chrome 35 is the rolled-out version. Here’s a comparison of the current Chrome 35 and the same page in the development version of Chrome 37. You can download Chrome 37 (WARNING! It’s an early preview, not a stable browser!) here.

New New Index Bloat Query

Quelle: https://gist.github.com/jberkus/9923948

Link: Die Top 4 JavaScript Sünden des neuen IVW Pixels

tl;dr: Der Default-Übertragungsmodus für SZM KAT 2.0- und FRABO-Tag ist grenzdebil (document.write), stattdessen sollte der appendChild()-Modus gesetzt werden, indem man die beiden Methodenaufrufe wie folgt anpasst:

SZM-Tag 2.0 (Übertragungsmodus): iom.c(iam_data) => iom.c(iam_data,1) somit wird eine appendChild()-Methode aus dem SZM-Tag.

FRABO: „sv“:“in“ => „sv“:“i2″ – somit wird der FRABO, genau wie der SZM-Tag 2.0 per appendChild()-Methode ausgespielt.

Hier der Vollständigkeit halber noch die Links zur Dokumentation für SZM-Kat 2.0 und FRABO.