jQuery .scrollToViewPort()

yesterday i found this very useful jQuery-script on github:

https://gist.github.com/853841

jQuery.fn.scrollToViewPort = function(animTimeInterval) {
  animTimeInterval = (typeof animTimeInterval == "undefined")?"slow":animTimeInterval;
  return this.each(function(){
    $('html,body').animate({scrollTop: $(this).offset().top},animTimeInterval);
  });
}

it moves the users’ viewport to show the element that it has been called on.

I modified it somehow so that it will check now if the element is already in the viewport.
So we can avoid auto-scrolling in that case.
A offset Parameter has also been added in case we need some margin.

https://gist.github.com/1018842

jQuery.fn.scrollToViewPort = function(options) {
  var animTimeInterval = (typeof options.interval == "undefined")?"slow":animTimeInterval;
  return this.each(function(){
    var offSet = (typeof options.offset == "undefined")? $(this).offset().top : options.offset;
    if( $(this).offset().top <= $(window).scrollTop() || ( $(this).offset().top + $(this).height() ) >= ( $(window).scrollTop() + $(window).height() ) ){
      $('html,body').animate( { scrollTop: offSet }, animTimeInterval );
    }
  });
}

usage:

 $(this).scrollToViewPort( { offset : ( ( $(this).offset().top + my_custom_offset ) - $(window).height() ) } );

Symfony 2 wird super. Oder …?

Natürlich wird Symfony 2 super. Die Dokumentation ist wie gewohnt zum jetzigen, frühen Zeitpunkt genial, die Architektur durchdacht, die Entwickler-Community steckt sowieso alles in die Tasche, man sieht einfach: Da steckt eine Menge Arbeit, Hirnschmalz und Erfahrung hinter. Aber genug geschleimt ;)

Mein Lieblingsthema ist ja zur Zeit der Dependency Injection Container. Und irgendwie stinkt mir die ganze Container-Konfiguration noch gewaltig. Meine kläglichen Versuche, selbst mal so was ähnliches wie eine brauchbare Autowiring-Implementierung herunterzubrechen, waren natürlich auch bzw. erst recht nicht der große Wurf – was vor allem daran lag, dass ich den Service Container und damit den ganzen Sinn und Zweck des Ganzen einfach mal wegrationalisiert hatte – Loose Coupling sieht natürlich anders aus, das sei den Kritikern zugestanden. Ich verteidige mich mal dadurch, dass ich eigentlich nur mal mit Mixins rumspielen wollte – da hab’ ich wohl die eine oder andere Begrifflichkeit durcheinander geworfen.

Aber um mal zu des Pudels Kern zu kommen: Ist es wirklich so geil, mit kilometerlangen XML-Dateien, ‘ner Menge Initialisierungscode und ohne mit der heißgeliebten Code-Completion in der IDE meiner Wahl ein Paradigma zu kaufen, das im speziellen Anwendungskontext – nicht im Framework-Kontext – eher selten Anwendung findet?

Continue reading “Symfony 2 wird super. Oder …?”

Event Tracker mit HTML5 custom data Attributen

HTML5 bietet die Möglichkeit für custom data Attribute in HTML Elementen.
Diese beginnen mit dem Prefix data- und können danach beliebeig benannt werden.
Browser sollten diese Attribute ignorieren aber für interne Datenstrukturen sind sie sehr gut geeignet.

Zum Beispiel kann man sich in Javascript Paramter-Übergaben sparen und sich die Daten holen, die man braucht.
Das hält das Markup schön Javascript frei -im Sinne von unobtrusive.
In meinem Fall brauchte ich einen Event Tracker, der Aktionen auf dynamisch generierten Elementen aufzeichnet.

Continue reading “Event Tracker mit HTML5 custom data Attributen”

64mb RAM 400 Mhz Laptop mit Linux

Ich habe die Zeit zwischen den Tagen mal für Quatsch genutzt:
Ich habe mal einen alten Laptop mit einem Linux versehen.
Der Laptop war ein Fujitsu Siemens mit einem 400 Mhz Celeron, 64 Mb (!) RAM und einer 4 GB Platte drin.
Da lief noch eine Windows98 drauf, was es auch tat, Winamp & Word taten es auch,
nur USB Sticks hat er nicht erkannt, die Partitionen waren etwas ungünstig und einiges andere war auch nicht optimal.
…und da sowieso alle Menschen mit Linux arbeiten sollten hab ich dann mal ein Linux dafür gesucht.

Mit 64Mb RAM ist die Auswahl da nicht so groß und ich bin sehr schnell bei DamnSmallLinux gelandet.
(-wieder mal, ja damals in der WG, der Wohnzimmerrechner vom Sperrmüll, da lief das auch schonmal, hach giedie-)

Continue reading “64mb RAM 400 Mhz Laptop mit Linux”