Marcel Eichner // Ephigenia

  • Home
  • Illustration
  • Code
  • Kontakt

Aktuelle Projekte

Horrorblog.org
jQuery.slideShow
Franklin
code.marceleichner.de

This Blog-Website is built with Harrison!

Blogs & Freunde

Gimmixx
Martin Fleck
Torsten Bergler
Jens Franke
Robokid
Peter Kröner
Polycoder
Coding Horror
Lotterliebe
CodeBalancer
Pseudocoder
Migrador
Dachdeckermeister Peter Arold in Werda, Plauen, Hof und Umgebung La Petite Provence - Pension und Festsaal in Leisnig Piv-Berlin, Immobilienverwaltung Verwaltung Berlin blogoscoop

#507

04.07.2011 19:51
0 Kommentare
Share
  • php
  • apache
  • gd-lib
  • image
  • server
  • nginx
  • static
  • content
  • delivery
  • .htaccess
One problem when relaunching large projects with a ton of images is to re-create all the thumbnails that users have uploaded in the years. If you don’t use paperclip (ruby) or anything like it in PHP (is there any like it!?) where you can run run one command to re-create all the thumbnails in all specified sizes your can try to keep it flexible and create every image on demand.

Theory

The Webserver should serve the image if it exists. If the file does not exist, the request should be redirected to a PHP script that searches and creates the requested image file (in requested size) at exactly the location it was originally requested. The second request on the file will not be redirected to the PHP script and will server the image that now exists.

Practice

So the first thing to archive is to send the request of a not existing image to a PHP file. That’s easy if you’re familiar with all the nginx directives:

This rule can be combined with the anti-hotlinking rules for images with nginx I showed you last week.

After that we need to create a format that includes width and height of any requested image so that the
thumbnailer.php
knows which size the created image should have. A valid request for a resized file should always have all parameters (width, height) in it:
../img/public/9c4be029/438xauto/filename.jpg

This makes it easy to split up width, height with a regexp in
thumbnailer.php
. The following code is just an example. You’re surelly integrate the logic into your frameworks:

That’s it! After that you can request any image in any size on your webserver by only creating it once it’s requested.

There are some things you can add, like other parameters in the
$formatRegexp
string to add different resizing methods or even filters, or limitations on the
width
and
height
parameter.

Appendix: Apache

It’s almost the same thing with apache. Just add a few lines to your
.htaccess.
and all your image requests are redirected to the thumbnailer (or anything):

#474

21.07.2009 09:32
0 Kommentare
Share
  • code
  • Web
  • tip
  • cake
  • links
Jetzt fang ich glaub ich auch an alle paar Tage mal ein paar Links zu posten die sich so ansammeln. Quer durch den Gemüsegarten wie man das von anderen Blogs auch gewohnt ist:

* Online RegExp Teste (PHP)
* iphone werbung die man nie sehen wird :D
* Wieso man Login-Versuche begrenzen sollte
* Streetfiles feiert 1-Jähriges! Herzlichen Glückwunsch!
* Google Visualization API
* msn live mail captcha cracked (via Instant-Thinking)
* Cakefest Berlin Sheets (Danke Oli!)
* Yahoo Pipes CakePHP Super Feed

#463

19.06.2009 10:45
0 Kommentare
Share
  • code
  • osx
  • test
  • terminal
  • tool
  • apache
  • siege
  • unix
  • webserver
  • benchmark
  • performance
  • regression
Wie gestern schon beschrieben kann man super ab (Apache Bench) die Performance seiner Applikationen im Web testen. Durch Zufall hab ich in meiner Ports Sammlung noch ein anderes Programm gefunden das auch sehr vielversprechend aussieht: siege.

Dort kann man auch mehrere URLs testen, einen User simulieren und noch viel mehr. Damit habe ich allerdings noch nicht so viel Erfahrung. Hab aber gleich mal meine App getestet:
siege -c 100 -t 10s http://localhost/myProject/
Die Ausgabe sieht fast so aus wie beim ab:
Transactions:                    545 hits
Availability:                 100.00 %
Elapsed time:                  17.85 secs
Data transferred:               1.33 MB
Response time:                  1.02 secs
Transaction rate:              30.53 trans/sec
Throughput:                     0.07 MB/sec
Concurrency:                   31.01
Successful transactions:         604
Failed transactions:               0
Longest transaction:            3.31
Shortest transaction:           0.03

Mit einem Config File kann man aber auch noch mehrere Urls abfragen und so ein realistischeres Ergebnis erzielen. Mehr dazu steht in der Docu von Siege oder in Tutorials die man so im Netz findet: Regression testing with Siege.

Ich denke mal das solche Tools auch eine wunderbare Möglichkeit sind verschiedene Hoster zu testen oder einem Kunden zu zeigen wie Vorteilhaft eine Optimierung seiner Applikation wäre oder einfach nur welchen extremen Effekt der Einbau eines Caches hat.

#427

13.12.2008 19:36
0 Kommentare
Share
  • berlin
  • Musik
  • photo
  • Postrock
  • LP
Ter Haar hat sein erstes Album veröffentlicht! Nach mehreren Jahren mit kleinen Releases auf Sinnbus flattert die erste richtig große LP in meinen Briefkasten! Year! In Rot!
Wie bei manchen Sinnbus Releases die auf Vinyl daher kommen ist auch hier ein Download Code mit dabei. Leider kann man den noch nicht auf der Δ Release Seite eingeben, da das dazu gehörige Feld fehlt. Wird’ aber bestimmt bald nachgeholt.

Mir persönlich gefällt das Album sehr, auch wenn in dem einem oder anderem Lied gesungen wird. Sehr schön geworden!

#331

18.11.2006 01:34
0 Kommentare
Share
  • code
  • php
  • programmieren
  • Web
  • buch
  • fundstücke
  • tip
  • Manifesto
Getting Real ist seit einiger Zeit bekannt und auch schon gelesen. Durch diverse Blogs und News ist es durchgegangen. Vor einer Woche hab ich entdeckt, dass es Getting Real auch als Print ausgabe gibt - undzwar bei Lulu (das ist kein Affiliate Link) :)
Dort hab ich mein Exemplar vor 6 Tagen bestellt und schon war es da. Nicht schlecht! Vor allem geb ich gerne mal 10Euro mehr aus um Getting Real als echtes Buch zu haben. Denn auf Papier kann man mucho better lesen :)
Getting real ist auch nicht mehr als Web 2.0 und die tieferen Beweggründe dahinter. Wer die ersten Seiten gelesen hat wird sehen das dort vieles steht was für Web 2.0 steht. (mal jetzt nich der community scheiss und tagging kack, sondern die essenz ..)

Was aber an der Lulu Umsetzung nicht so gut ist, das die Zeilen von Seite zu Seite und auch die Seitezahlen nicht richtig ausgerichtet sind, und auch das Layout nicht so schön rüberkommt wie ich gedacht hätte - also der Satz und alles ... aber hey ... vielleicht gibts das ja bald von Oreilie oder Gallileo oder sowas ;-)

#183

23.04.2005 13:41
0 Kommentare
Share
  • code
  • Web
  • fundstücke
Ich weiss nich mehr in welchem andren Blog ich das gesehen hab. Is aber ne lustige Geschichte um das Web auf die Erde zu mappen ;-) oder sagen wir ein ansatz.
Mit GeoTags in den Meta angaben jeder Seite kann man bald hier suchen und weiss das wer 100m weiter auch ne seite hat ...
http://geourl.org/near?p=http://www.marceleichner.de/ mit 3 Tags kann man das erreichen:
meta name="geo.position" content="52.4521; 13.5106"
meta name="geo.placename" content="Berlin, Germany"
meta name="geo.region" content="DE-BE"

die Latitude und Longitude Werte kann man zum Beispiel hier ermitteln: http://www.multimap.com/

#107

15.12.2004 22:31
2 Kommentare
Share
  • Musik
  • photo
  • Party
  • Superpositioners
  • Text
Noch mehr Photos von der am Samstag Geschichte im WMF gibts hier Leider ham wirs nich geschafft auf ein Photo zu kommen aber die Visuals sind wenigstens im Ansatz zu erkennen.
marceleichner HTML5 Harrison Theme (Validate Source), © 2010 by Ephigenia M. Eichner, Impressum