So etwas php für zwischendurch. Ich habe mich letztens mit René Oelke getroffen und ihm habe ich einen hilfreichen Kniff für PHP Quellcodes erhalten:
$components = array(
'Auth',
'Session',
);
Wie man erst meinen würde ist das nicht valide, da ein Komma hinter 'Session' steht. Das ist aber schon valide! Klarer Vorteil wenn’s ums mergen geht!
Dann für alle die es noch nicht kennen. Sog. Pastebin sind ideal wenn man code schnipsel austauschen möchte oder jemanden fragt wie man das problem x/y löst. Statt einem Screenshot schickt man einfach einen link (wie bei url shortenern) und der jenige kann sich bequem ein Bild machen. Mein persönlicher Favorit ist Pastie.org.
Oh mann, was für ein Pain-in-the-ass ... wenn man echte Klassen in Javascript haben möchte kann man sich so ziemlich tot googeln und man wird jedes mal nur 50% von dem finden was man eigentlich sucht wenn man echte Klassen mit Vererbung in JavaScript haben möchte.
Glücklicherweise gibt es Leute denen das auch schon so gegangen ist und die eine wirklich einfach zu nutzende und kleine Bibliothek für echte Ruby-like Klassen in JavaScript geschrieben haben: JS.Class
Ein weiter Vorteil ist, dass man JS.Class anstandslos mit jQuery benutzen kann, was von kleineren Code-Snippets die Klassenverhalten simulieren soll nicht gerade sagen kann.
Wer erst abgeschreckt ist von den vielen Dateien sei beruhigt. Für einfache Klassen reicht schon das core.js was minified nur 7434 Bytes gross ist. Eine echte Zeitersparnis!
In einem Spiegel Artikel wurde ich auf eine kostenlose Alternative zu Parallels hingewiesen: VirtualBox von Sun!
Da meine Parallels Lizenz schon etwas alt ist und ich mir das Update auf die neue Version und die neue Serial verkneifen möchte kommt mir das sehr gelegen. Runtergeladen, Installiert, funktioniert! Sehr schnell und intuitiv hat man sich ein virtuelles Ubuntu auf seinen Rechner geknallt! Ausprobieren!
Letzte Woche habe ich für ein Projekt endlich mal meine verschiedenen jQuery Scripte zu einem Plugin vereinigt, dass es sehr einfach macht einfache Slideshows in seiner Website einzubinden.
Würde mich freuen wenn es euch mehr weiterhilft als mein Franklin, das erst 2 mal runtergeladen wurde ;-) Über Feedback würd’ ich mich natürlich auch freuen.
Hier noch ein kleines Beispiel wie ihr die Slideshow benutzt:
$(document).ready() {
$('.mySlideShow').slideShow();
}
Mehr Beispiele, auch mit den slideClick und gotoSlide Callbacks gibts auf der jquery.slideShow Plugin Seite.
Mittlerweile habe ich es auch geschafft das Plugin in das Plugin-Verzeichnis von jQuery einzutragen. Über positive Bewertungen würde ich mich freuen!
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.
Wer sich mit Websiten beschäftigt die von mehr als 100 Besuchern am Tag besucht werden und nicht wirklich viel im Terminal macht freut sich eventuell über Apache Bench.
Das ist ein Programm das man auf OSX ganz einfach im Terminal laufen lassen kann um seinen Server mal so richtig schwitzen zu lassen.
Ein üblicher (und auch vergleichbarer) Aufruf ist der folgende:
ab -c 10 -t 60 http://localhost/myProject/
Was 60 Sekunden lang, immer 10 Requests auf die Seite abfeuert und einem danach folgende Ausgabe generiert:
Finished 3102 requests
Server Software: Apache/2.0.59
Server Hostname: localhost
Server Port: 80
Document Path: /myProject/
Document Length: 2005 bytes
Concurrency Level: 10
Time taken for tests: 60.002 seconds
Complete requests: 3102
Failed requests: 303
(Connect: 0, Receive: 0, Length: 303, Exceptions: 0)
Write errors: 0
Total transferred: 7530897 bytes
HTML transferred: 6211149 bytes
Requests per second: 51.70 [#/sec] (mean)
Time per request: 193.431 [ms] (mean)
Time per request: 19.343 [ms] (mean, across all concurrent requests)
Transfer rate: 122.57 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 1.2 0 11
Processing: 30 186 663.6 157 20630
Waiting: 0 161 83.6 155 621
Total: 30 187 663.6 157 20631
Percentage of the requests served within a certain time (ms)
50% 157
66% 196
75% 219
80% 235
90% 276
95% 309
98% 354
99% 386
100% 20631 (longest request)
In dieser Ausgabe kann man erkennen das das aktuelle Projekt so ca. 50 Leute gleichzeitig aushalten könnte. Im vergleich mit anderen Projekten kann man dann Rückschlüsse darauf ziehen wie gut man programmiert hat ;-)
Viele benutzen ab auch zum Vergleich von verschiedenen Frameworks die ich euch natürlich nicht vorenthalten möchte: Test1, Test2 und Test3.
ab kann man wie üblich über macports installieren (OSX Developer Tools müssen installiert sein):
sudo port install ab
Gerade wurde ich wieder gefragt wie man erfolgreich subdomains mit einer htaccess Rule erkennen kann. Grund dafür war das neue Update von Wordpress, nach dem die Subdomains nicht mehr so recht wollten.
Viele kenen die normalen Standard Rules für die htaccess Dateien und kennen noch nicht die Konditionalen Rules die auch sehr hilfreich sind.
RewriteCond %{HTTP_HOST} ^(subdomain1|subdomain2).domain.de$ [NC]
RewriteRule ^(.*)$ http://www.domain.de//$1 [R=301,L]
Diese müssen dann vor die Regeln von Wordpress und schon müsste es wieder laufen.
In den erweiterten Einstellungen (im VLC, Einstellungen unten auf die Radio-Button "All" klicken) kann man wie auf dem Screenshot zu sehen relativ unkonfortable die Performance vom VLC bei HD Filmen verbessern.
Danach kann man auch 1080 Filme auf nem etwas älteren weissen MacBook (2007er) wunderbar anschauen ohne Ruckler oder Artefakte.
Okay, das ist mal cool! Anscheinend kann man sich per WLAN oder sonstwie der O2 Anzeigetafeln in Berlin Friedrichshain bedienen. Fraglich ob der Hack auf beiden Tafeln zu sehen war, diese hängen nämlich anscheinend an einem und dem selben System.
Via NoMoreSleep Blog
iTerm ist eine willkommene Alternative zu der nativen Terminal App für OSX. Jetzt kann man die auch mit AppleScript verwursten.
Wenn man es Leid ist immer wieder die selben Terminal Fenster aufzumachen um Apache-Logs zu lesen oder die Datenbank zu überwachen sollte man überlegen ob das nicht noch besser geht. Klaro geht das besser! Mit Apple-Script!
tell application "iTerm"
activate
-- create server log terminal
make new terminal
tell the last terminal
activate current session
launch session "Default Session"
tell the last session
write text "clear;"
write text "tail -f /Applications/MAMP/logs/apache_access.log"
set background color to {15000, 200, 200}
end tell
end tell
set the bounds of the first window to {0, 700, 840, 900}
set the name of the first window to "apace_access.log"
-- creat working terminal
make new terminal
tell the last terminal
activate current session
launch session "Default Session"
tell the last session
write text "welcome user, start now"
end tell
end tell
set the bounds of the first window to {0, 0, 840, 660}
set the name of the first window to "workspace"
end tell
So kann man ganze Fenster Setups zusammencoden und erspart sich so hoffentlich einen Haufen Zeit.
Nachtrag:
Man kann dann das Apple-Script auch automatisch bei jedem Start von iTerm ausführen lassen indem man es in ~/Library/iTerm/AutoLaunch.scpt ablegt. Weitere Beispiele gibt es auf der Scripting Seite von iTerm.