loadAnimation Plugin unter den besten im Mai 2009?

- ,

Ist mein jQuery Plugins eins der besten welche im Mai geschrieben/veröffentlicht wurden? Diese Ansicht vertritt auf jeden fall die englische Seite ajaxline.com und nimt mein loadAnimation Plugin in ihre Liste der besten 30 Plugins vom Mai auf. Ob es diese Ehre wirklich verdient weiss ich jedoch nicht den es ist doch recht simpel, doch vielleicht war  genau das einer der entscheidenden Gründe… ich weis es nicht. Ich bedanke mich jedoch für die Linkung auf dem Blog und freue mich darüber, dass ich noch anderen Entwicklern ein wenig Arbeit abnehmen konnte indem ich die Funktion in ein jQuery Addon gepackt habe. Wer es noch nicht kennt und gerne ausprobieren möchte, kann es unter Downloads herunterladen.

jQuery Code optimieren

- ,

jQuery ist ein sehr Praktisches JavaScript Framework, welches einfach zu bedienen und auch ganz schön schnell ist. Seit der Version 1.3 sind die Selectoren auch nochmals um ein vielfaches schneller geworden. Trotzdem ist es, vor allem bei grösseren Projekten, nie verkehrt den JavaScript Code zu optimieren. Dafür habe ich einige einfache Tips, welche helfen die Ausführungszeit des JavaScripts zu verringern.

Herkömliche Browser Funktionen sind immer schneller als Funktionen in einer Library

Beispielsweise sollte man eher das normale for () vom JavaScript benützen als die jQuery Funktion $.each() auch wenn diese mehr Funktionen liefert. Ebenso sollte darauf geachtet werden, dass möglichst wenig Funktionen benützt werden.  Also das man sich erst den gesamten String zusammenbaut und erst danach den String in den Ort im DOM einfügt, an welchem er hin gehört.

Keine langen String Verkettungen machen, stattdessen die Array Fuktion join nützen

 var tmp = '';
for (var i=0; i< =rows.length; i++) {
       tmp += '
'+rows[i]+''; } alert(tmp); // ist schneller var tmp = []; for (var i=1; i< =rows.length; i++) { tmp[i] = '
'+rows[i-1]+''; $ } alert(tmp.join(''));

Einfachere Selectoren auf kleinere DOM Teile angewendet sind schneller</b><br /> Am schnellsten ist der Selector $(‘#id’). Wenn immer möglich sollte man für jedes Element, welches angesprochen werden soll eine eigene ID setzten und das Element darüber ansprechen. Dies ist auf jeden fall der schnellste Weg ein Element anzusprechen. Der Zweitschnellste, ist dasder Selector $(‘tag’) über einen HTML Tag. Auch Kombiniert sind diese beiden sehr schnell.

var bereich = $('#container');
var link = bereich.find('a');
var tabelle = bereich.find('table');

Apple und der iTunes Store

- ,

Heute bin ich einem wunderschönen Paradoxon begegnet, was mich doch sehr amüsiert hat. Es geht um die Firma Apple und ihren iTunes Store, doch ich will von ganz vorne beginnen:

Gestern hat Linkin Park die neue Single “New Divide” im Internet vorgestellt und versprochen das sie noch am selben Tag im iTunes Store verfügbar sein wird. Das ist auch so man kann sie mitlerweile dort wirklich kaufen, allerdings nur im US Store, auf den man mit einem Schweizer Benutzerkonto kein Zugriff hat. Im Schweizer iTunes Store ist der Song erst ab dem 22 Mai verfügbar, also erst 4 Tage später. Da man allerdings auf der Linkin Park Seite nur noch einen kleinen Ausschnitt hören kann und nicht mehr den ganzen Song wie gestern würde ich den Song gerne jetzt kaufen. Da mich Apple ja aber nicht lässt, gebe ich Songname und Interpret bei Google ein und schnell ist eine Seite gefunden, auf welcher sich der Song herunterladen lässt.

Für mich stellt sich nun einfach die Frage, für was die Firma Apple so viele Mühen in den Kopierschutz steckt, wenn sie Leute die einen Song wirklich hören wollen dazu drängt ihn sich aus dem Internet herunterzuladen. Ich wollte den Song wirklich kaufen, aber ich durfte (noch) nicht.

Facebook Freundeslisten für den Chat

- ,
Facebook Freundesliste für den Chat

Diese Woche hat Facebook eine kleine Neuerung für den Chat eingeführt. Mit dieser Neuerung kann man einstellen, welche Freunde auf Facebook sehen dürfen, dass du online bist und welche nicht. Die Funktion, dass alle in der Kontaktliste sehen können das man online ist ist in letzter Zeit vermehrt in Kritik geraten, nachdem eine Angestellte einer Schweizer Versicherung ihren Job verloren hatte, weil sie sich auf Facebook herumgetrieben hatte. Dies hatte ihr Arbeitgeber entdeckt und sie mit der Begründung “Wer surfen kann, kann arbeiten” gefeuert.

Wer sich also sorgen macht kann, wenn er seine Freunde und seine Freundesliste gut sortiert und den Chat sorgsam einstellt, getrost auch auf Facebook surfen wenn er krank zu Hause liegt.

Nein zu den Biometrischen Pässen!

- ,

Diesen Sonntag ist wieder einmal eine Volksabstimmung in der Schweiz. Das Volk darf über die Änderungen um die  Biometrischen Pässe abstimmen. Biometrische Pässe sind in der Schweiz nichts neues, wir können bereits bei Bedarf einen solchen Beantragen. In Zukunft sollen aber nur noch solche Biometrische Pässe ausgestellt werden weil das Schengen Abkommen dies so von uns verlangt. Dagegen ist Grundsätzlich auch nichts einzuwenden, zumal das Schengen Abkommen wichtig ist für unsere Sicherheit und Ordnung.

Bedenklich ist aber, dass in Zukunft zu den bisherigen biometrischen Gesichtsdaten auch zwei Fingerabdrücke hinzukommen, welche auch in unserer Zentralen Datenbank gespeichert werden sollen. Diese kann nicht nur Theoretisch zu Fandungszwecken verwendet werden. Es sei zwar Verboten, diese zu Fandungszwecken zu verwenden doch wie gross die Verlockung ist kann sich wohl jeder selbst vorstellen. Zumal die Datenbank vom Fedpol, dem Bundesamt für Polizei, verwaltet wird. Die Fingerabdrücke müssen für das Schengen Abkommen zwar den biometrischen Daten im Pass hinzugefügt werden, jedoch wird nicht verlangt diese in einer zentralen Datenbank zu speichern.

Ebenso unschön ist, dass es die Gesetzesänderungen dem Bundesrat erlaubt, wenn er es für nötig hält, die biometrischen Daten auch der ID hinzuzufügen. Dies ist mehr als unnötig und auch nicht schweizerisch. Die Indenditätskarte ist hauptsächlich um sich im In- und nahem Ausland auszuweise. Dafür werden keine biometrischen Daten gebraucht. Zudem würde eine ID mit biometrischen Daten auch unnötige Kosten verursachen. Der Bundesrat sagt zwar, dass bei der ID niemand biometrische Daten hinzufügen will, möchte aber anscheinend doch das Recht es einführen zu können wann er will. Für was wenn ich fragen darf?

Was noch dazu kommt ist, dass die Pässe mit so genannten RIFD- Chips. RFID steht für “Radio Frequency Identification”, also für die Identifizierung mit Hilfe eines Funkchips. Diese können über eine Distanz von bis zu ca 1. Meter ausgelesen werden. Jedoch kann, sobald ein Pass ausgelesen wird von einer Distanz von bis  zu 25 Metern “mitgehört” werden. Da die Wellen über die Kupferdräte von Stromleitungen weitergeleitet werden können währe es Theoretisch möglich das Auslesen aus einer Distanz von bis zu 500m aus mitzuhören.

biometrische Pässe ja, aber nicht so! Da muss das einte oder andere geändert werden bevor wir diese Einführen können. Deshalb liebe Freunde rate ich euch am Sonntag gegen die Vorlage zu stimmen.

Firefox wird in Prozesse aufgeteilt

- ,

Nun ist es auch beim Firefox soweit. Nach dem Internet Explorer und dem Google Chrome wird auch der Firefox, wie im Mozilla Wiki angekündigt, in Prozesse aufgeteilt. Das Entwickler Team von Mozilla will dies aber gründlicher machen als Microsoft und Google. Mit diesem Schritt wollen sie die Reaktionsgeschwindigkeit der Oberfläche erhöhen, den Browser für Mehrkernprozessoren optimieren und die Stabilität erhöhen. Die Stabilität wird dadurch erhöht, dass jeder Tab einen eigenen Prozess bekommt. Dies hat zur folge, dass wenn einer Abstürzt oder hängen bleibt kann man den Browser weiter gebrauchen und einfach den einen Tab schliessen. Als potentielles Ziel dieser Optimierung wird auch eine Sicherheit Erhöhung durch Prozess Isolationen angegeben. Will heissen das jeder Tab, oder auch jeder Prozess, nur so viele Rechte bekommt wie nötig was die Angreifbarkeit des Browsers reduzieren soll.

Bis wir uns an diesen Verbesserungen des Firefox erfreuen dürfen wird es allerdings noch einige Monate dauern. Vor anfangs 2010 werden wir wohl kaum in den Genuss der fertigen Version kommen.

(Quelle: Golem)

jQuery Plugin loadAnimation

- ,

Ich habe vor ein par Wochen ein kleines Plugin für jQuery geschrieben, welches mir schnell und einfach ermöglicht einen Bereich zu Markieren in welchem gerade etwas geladen wird. Es ist bisher nichts spezielles und wurde eigendlich auch nur für mich geschrieben. Ein Kollege von mir meinte aber bereits auch, dass er dieses Plugin gerne einsetzten würde und so dachte ich mir ich kann es gleich allen zur Verfügung stellen. Ihr könnt es ganz einfach im Downloadbereich herunterladen.

Zu bedienen ist es relativ einfach und lässt sich mit einem kurzen Start und Stop befehl steuern.

// Starten
$('selector').loadAnimation();  

// Stoppen
$.loadAnimation.end();

Zudem kann die Animation auch ein wenig dem Layout angepasst werden in dem man die Farbe, Transparenz, zIndex und ein Bild in der Mitte anzeigt. Ebenso kann man die Geschwindikeit steuren in der die Animation ein- und ausgeblendet wird.

var options = {
// Ein- / Ausblenden
loadSpeed: 'slow',
closeSpeed: 'fast',

// CSS Otionen
zIndex: 998,
opacity: 0.9,

// Farbe
color: '#ccc',

// Bild in der Mitte
image: {
src: '',
alt: 'loading...',

// Grösse des Bildes wird benötigt um das Bild schön
// in der Mitte darzustellen.
size: {
width: 100,
height: 10
}
}
};

// Animation mit Optionenen Starten
$('selector').loadAnimation(options);

Also viel Spass damit… Wenn ihr Fragen habt oder Bugs gefunden habt, schreibt dies einfach in die Kommentare.