pushing the boundaries
um den ZoomFaktor auf GoogleMaps dynamisch zu setzen,
je nachdem wie viele Marker man wo hat, kann man GLatLngBounds benutzen.
Continue reading “Googlemap Zoom-Faktor automatisch berechnen”
…dev, tech problems and solutions.
pushing the boundaries
um den ZoomFaktor auf GoogleMaps dynamisch zu setzen,
je nachdem wie viele Marker man wo hat, kann man GLatLngBounds benutzen.
Continue reading “Googlemap Zoom-Faktor automatisch berechnen”
Ein recht verstecktes Feature, das neuere Server, bspw. Lighthttpd + FCGI-Modul bereits “out of the box” unterstützen, ist das anwendungsgesteuerte “Durchschleifen” von großen Dateien via X-Sendfile Header.
Wozu es gut ist und wie man es benutzt,will ich im Folgenden kurz erläutern:
Silverstripe bzw. das drunterliegende Framework Sapphire hat ja eine GeoIp Komponente, die in dem CMS und auch in einigen Modulen benutzt wird, zB um Länder in Formularen direkt einzustellen.
Was allerdings nirgendwo steht ist, dass dafür das Programm geoiplookup benötigt wird.
Continue reading “Silverstripe und GeoIp”
dieses erwähnenswerte Tool ist ein Javascript-Wrapper für die Geocoding Services:
Yahoo Placemaker, Yahoo GeoPlanet, jsonip.appspot.com, IP location tools, W3C Geo location und Flickr.places.findByLatLon.
Die Syntax ist mal denkbar einfach, denn das ganze beschränkt sich auf eine einzige Methode, nämlich:
yqlgeo.get(what,callback)
Ich bin ja Fan von sqlite, besonders für kleinere Projekte, wo kein hohes paralelles Schreiben zu erwarten ist, also für fast alle kleineren Seiten.
Keine Datenbank Administration, einfach loslegen und schnell ist es auch noch.
Ein paar Krücken gibts aber schon, zB bei Transaktionen (die MySql im Regelfall gar nicht kann ;)).
Ich benutze die in diesem Fall für multiple Inserts, um da Performance rauszuschlagen.
Über diese bin ich letztens noch gestolpert:
1. Es ist keine gute Idee Transaktionen zu stückeln und sequentiell abzuarbeiten.(warum auch immer man auf diese Idee kommt ;))
besser ist: alle Queries zu buffern und dann in einer Transaktion auszuführen.
Denn Transaktionen locken die DB und nach meiner Erfahrung kann das PHP SQLiteDatabase Object den Datenbank Cursor nicht richtig schließen.
Das führt dann zu sowas: “cannot start a transaction within a transaction”
Continue reading “PHP und Sqlite Transaktionen”
Dann habe ich neulich mal meinen vServer upgegradet von Debian Etch auf Lenny, um in den Genuss einer neueren PHP Version zu kommen.
Ein paar Problemchen gabs schon aber es hat geklappt!
Das lief ab wie folgt:
Zunächst einmal Plesk auf neuesten Stand bringen über den Updater von Plesk.
Dann das Debian dist upgrade:
wie hier beschrieben:
Die Liste mit den Quell-Paketen ändern:
# new lenny packages. deb http://ftp2.de.debian.org/debian/ lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free # source packages. deb-src http://ftp2.de.debian.org/debian/ lenny main contrib non-free deb-src http://security.debian.org/ lenny/updates main contrib non-free # volatile sources deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free
Dann upgraden
Continue reading “Upgrade von Etch auf Lenny”
Gerade erst gesehen: Symfony 2.0 kommt anscheinend gegen Ende 2010.
The repository is updated every 15 minutes.
Einiges klingt schon ziemlich vielversprechend.
…die Tage mal genauer reinschauen.
It is up to 3 times faster than symfony 1.4 or Zend Framework 1.10 and consumes half the memory.
oder: Doctrine 2 wird wohl ziemlich gut.
Hier gibt es ein paar Notizen von Jonathan Wage’s Präsentation dazu!
Continue reading “The only valid measurement of code quality: WTFs/minute”
Meinen Lieblingseditor vim brauche ich an dieser Stelle ja nicht en detail vorzustellen.
Ein Feature allerdings, über das ich erst nach jahrelanger Nutzung gestolpert bin, passt sehr gut ins nerdpress: 2html.
Was dieses Kommando macht?
Na, HTML-Code aus dem Inhalt des aktuellen Puffers as is erzeugen – optional mit Zeilennummern und CSS-Code.
Und so geht das: Continue reading “vim2html”
Ich benutze ja Ant zum deployen, noch jedenfalls, weil die Installation und Konfiguration mir doch immer mal wieder Kopfzerbrechen bereitet. :=
Damit hole ich die HEAD Rev oder ein stable tag aus SVN, mach noch ein paar Fileoperations, wie Live Configs reinkopieren, .htaccess vorbereiten etc.
und jage die files dann, für die Standard Hosting Packete, mit FTP hoch. Dabei benutze ich noch die timediffauto Option, um nur die geänderten Files hochzuladen.
Nachdem wir hier den DeployServer neu gemacht haben, schmiess der FTP Task allerdings eine NullPointerException, die ich mir nicht erklären konnte, eigentlich war alles wie vorher.
Letztlich konnte ich es dann auf das timediffauto Attribut einkreisen und nach langem grübeln und googeln dann die Lösung:
Continue reading “Ant Ftp Task und NullPointerException”