Lighttpd, Plesk und PHP

Will man auf seinem Server(debian) Lighttpd paralell zu Plesk’s Apache zum laufen kriegen sollte man auf jeden fall PHP als FPM laufen lassen.
Das kommt sich nicht mit dem von Plesk und Apache regierten PHPs in die Quere und ist sowieso schneller und kann auch die Prozesse killen und neuladen.
Falls man mal was in der ini ändern will.

FPM installieren geht so, wie er es dort beschreibt:

Allerdings in der conf den Port nicht als String, sondern numeric:

server.modules   += ( "mod_fastcgi" )

## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server    = ( ".php" =>
        (
"localhost" =>
        (
                "host" => "127.0.0.1",
                "port" => 9000
        ))
)

Bleibt noch das Problem mit dem APC Konflikt, falls da jemand eine Lösung weiß, nur her damit.

Man, das war ein kampf ;)
Mal sehen wie lang das hält…

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() ) } );

SilverStripe Image Gallery installation

Theres a lot of old, deprecated and now wrong installation guides for the SilverStripe Image Gallery Module on the web that will lead you to where you dont want to. Dont trust them!

Unclecheese made some changes to the module dependencies and also moved to git, some time ago. He now uses the new Uploadify module instead of the SwfFileUpload module.

So a working installation of the image-gallery for git-people is to:

Continue reading “SilverStripe Image Gallery installation”

symfony 1.4 installer

Ich hab mal einen symfony 1.4 installer shell script auf github gepackt.
Damit kann man “ruckizucki” auf Ubuntu ein lokales symfony 1.4 Projekt aufsetzen.

Es ist ein fork von einem virtualhost create script und macht folgendes:

    – holt den letzten symfony 1.4 stable release via svn
    – setzt alle notwendigen rechte zB auf den cache folder
    – bereitet die datenbank vor
    – legt eine app an
    – macht eine .gitignore
    – und ruft das virtualhost creator script auf, was den vhost anlegt auf “web”

Continue reading “symfony 1.4 installer”

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 …?”

Ajax Deeplinks mit jQuery Address

Aus der Reihe: feine jQuery Plugins, um nicht zu sagen essentielle jQuery Plugins, heute:
jQuery Address

Damit kann man sehr einfach Deeplinks in Ajax getriebenen Seiten realisieren.

So lassen sich zum Beispiel verschiedene Zustände in einer Ajax Seite navigierbar machen, wie zum Beispiel einzelne Tabs via Link öffnen oder auch Akkordion Zustände.
Oder man kann Ajax Bereiche SEO technisch erfassbar machen.

Continue reading “Ajax Deeplinks mit jQuery Address”