Um auch unterwegs ein wenig an meinen Horrorblog Reviews zu arbeiten und Konzepte zu schreiben oder sonstwas zu machen habe ich mir in der letzten Woche mein erstes Netbook zugelegt. Das trendige iPad kam nicht in Frage, da es keine Tastatur hat, nicht erweiterbar ist und man nur die Apps aus dem AppStore installieren kann.
Um mich nicht mit dem auf dem Samsung N150
vorinstalliertem Windows 7 rumägern zu müssen hab ich direkt beim zweiten mal hochfahren den vorher präparierten USB Stick mit der Ubuntu Live-CD angesteckt und schon nach wenigen Klicks war Ubuntu installiert. Beim erstellen des USB Sticks hat es sich herausgestellt, dass die Anleitung auf der Ubuntu Download Seite für OSX nicht funktioniert und dass man mit der Windows Anleitung besser fährt.
Nach der Installation stand mir die ganze Open-Source Welt offen und ich hab’ erstmal meine Lieblinge cmatrix und figlet für die Kommandozeile installiert. Weitere Programme findet man über die Software suche und kann sie super schnell und einfach installieren.
Die Berliner Gazette wurde Ende April mit dem Alternativen Medienpreis in der Sparte Internet ausgezeichnet. Die Website, die von mir komplett in einem Wordpress Theme und selbst geschrieben Plugins gebaut wurde, funktioniert immer noch wunderbar und ich freue mich über diese tolle Ehrung!
In einem aktuellen Projekt steht bald ein signifikanter Server-Wechsel an. Um später genau sagen zu können, was das gebracht hat, wollte ich mehrere Teile der Website (verschiedene URIs) mit dem Apache Tool ab zu verschiedenen Tageszeiten, einmal vor Wechsel des Servers und nach Wechsel des Servers, testen. Da ich nicht viel Zeit verschwenden wollte, hab’ ich ein Shell-Script geschrieben das mir wenigstens die Arbeit abnimmt die verschiedenen URIs abzuchecken:
#!/bin/bash
##############################################################################
# Run ab on a list of URIs
#
# Usage:
# ab_batch.sh
#
# Author: Marcel Eichner // Ephigenia <love@ephigenia.de>
# Date: 2010-06-03
##############################################################################
URL="http://www.horrorblog.org"
SLEEP=30
URIS=(
"/"
"/blog/reca-drei-clips-und-red-band-trailer/"
"/blog/the-crazies-remake-horrorblog-kritik/"
"/blog/the-crazies-interview-clips/"
"/blog/the-devils-playground-erste-bilder/"
"/blog/a-nightmare-on-elm-street-remake-horrorblog-kritik/"
)
date
echo -e "Batch Apache-Benchmarking on n${URL}"
for URI in ${URIS[@]};
do
echo "uri: ${URI}"
ab -c 10 -t 60 "${URL}${URI}" | grep -P "(request|second):"
sleep ${SLEEP}
done
Das liefert dann zum Beispiel folgendes Ergebnis. Die Werte kann man dann in eine Tabelle übertragen und ein Diagram draus machen. Nach dem Server wechseln dann das ganze noch einmal durchführen und schon hat man einen schönen Beweis was der Umzug denn gebracht hat.
Fr 4 Jun 2010 12:15:54 CEST
Batch Apache-Benchmarking on
http://www.horrorblog.org
uri: /
Finished 349 requests
Requests per second: 5.57 [#/sec] (mean)
Time per request: 1794.754 [ms] (mean)
Time per request: 179.475 [ms] (mean, across all concurrent requests)
uri: /blog/reca-drei-clips-und-red-band-trailer/
Finished 588 requests
Requests per second: 9.79 [#/sec] (mean)
Time per request: 1021.170 [ms] (mean)
Time per request: 102.117 [ms] (mean, across all concurrent requests)
uri: /blog/the-crazies-remake-horrorblog-kritik/
Finished 407 requests
Requests per second: 6.78 [#/sec] (mean)
Time per request: 1474.255 [ms] (mean)
Time per request: 147.425 [ms] (mean, across all concurrent requests)
uri: /blog/the-crazies-interview-clips/
Finished 397 requests
Requests per second: 6.60 [#/sec] (mean)
Time per request: 1514.682 [ms] (mean)
Time per request: 151.468 [ms] (mean, across all concurrent requests)
uri: /blog/the-devils-playground-erste-bilder/
Finished 331 requests
Requests per second: 5.50 [#/sec] (mean)
Time per request: 1816.657 [ms] (mean)
Time per request: 181.666 [ms] (mean, across all concurrent requests)
uri: /blog/a-nightmare-on-elm-street-remake-horrorblog-kritik/
Finished 506 requests
Requests per second: 8.43 [#/sec] (mean)
Time per request: 1185.792 [ms] (mean)
Time per request: 118.579 [ms] (mean, across all concurrent requests)
Für Verbesserungsvorschläge bin ich wie immer offen! Kommentiert einfach!
Quelle: rebell.tv Am vergangenen Donnerstag hatte ich die Chance und gleichzeitig Ehre für mein horrorblog.org-Projekt von rebell.tv interviewt zu werden. Das ungeschnittene, eine halbe Stunde lange Interview gibt es auf der Website zum anhören. Da dies mein erstes Interview überhaupt darstellt und es gar nicht so schlecht geworden ist möchte ich auch mein privates Blog nutzen um darauf hinzuweisen. Wer sich selbst für Horror- und Fantasy Filme interessiert sollte auf jeden Fall mal im Horrorblog vorbeischauen!
Ich hab mir letztens für meine kleine Bibliothek Zuwachs besorgt und mir die englische Originalausgabe von Clean Code
(Amazon-Affiliate Link) von Uncle Bob
aka. Robert C. Martin besorgt.
Nach Code Complete
, Code Craft
die ca 300 Seiten dicker sind, ist das das dritte Buch das sich mit Quellcode-Qualität beschäftigt.
Anders als in den zwei anderen Büchern gibt es in Clean Code
genauere konkrete Code Beispiele und weniger Statistiken. Was überzeugender ist kommt ganz auf den persönlichen Geschmack an. Statistiken sind super Argumente für Projektmanager oder Chefs um ihre Pläne durchzubringen wohingegen die konkreten Beispiele den einzelnen Programmierer ansprechen. Besonders die zwei wirklich konkreten und auch nachvollziehbaren Kapitel weiter hinten im Buch geben ein Beispiel daran.
Wunderbar finde ich auch, dass anders als in den anderen beiden Büchern das Thema Respekt angesprochen wird. So ist es weder falsch sondern eher richtig den Quellcode von jemand anderen zu analysieren und zu kritisieren denn nur dadurch kommt ein Dialog zu Stande und die Qualität verbessert sich.
Am Ende von Clean Code
welches nur Java Beispiel beinhaltet - was aber nicht wirlich stört - werden alle "Regeln" noch einmal aufgezählt und viele kennt man schon aus anderen Büchern. Für mich war das eine schöne Auffrischung für mich und ein Ansporn noch länger über den richtigen Namen der nächsten Variablen nachzudenken!
Programmierung ist kein Service sondern ein Handwerk das es gilt zu beherrschen!
Freunde von Freunden ist ein Online- und Interviewmagazin, das Kreative und Meinungsführer in ihren Arbeits- und Lebensräumen dokumentiert und persönliche individuelle Perspektiven und Eindrücke vermittelt.
Wir schauen hinter die Kulissen und zeigen, wie unsere Freunde leben und wohnen. Mit Hilfe von Fotostrecken porträtieren wir ausgewählte Personen in ihrer direkten Lebensumgebung, sei es zu Hause, im Studio, im Apartment oder in deren Kiez.
Ein einmaliger und exklusiver Einblick mit visuellen Eindrücken, viel Liebe zum Detail, Hintergrundinformation zum Alltag der Gäste und Geheimtipps durch Text- und Videointerviews.
Umgesetzt hat das ganze, nach einer Idee von Timmi Seifert, Nomoresleep und die Photos stammen von Ailine Liefeld.
Wow, dass wusste ich jetzt auch noch nicht - hab ich wiedermal nur durch Zufall entdeckt. Wenn man in Textmate CTRL+SHIFT+T drückt sucht Textmate im aktuellen Projekt nach //TODO tags und listet diese übersichtlich auf. Die //TODO Tags kenne ich ursprünglich aus Eclipse und das diese jetzt auch in Textmate gehen entzückt mich total :D
Manchmal lege ich mir für Projekte extra Todo-Listen an. Things benutze ich irgendwie nicht mehr besonders, da die Trial abgelaufen ist und irgendwie ist das auch zu statisch naja. Für Leute die Textmate benutzen gibt es schon voll Lange ein Bundle das Todo-Listen unterstützt: Tasks bundle für Textmate
Nach ein wenig Programmieren und "Designen" ist jetzt endlich eines meiner Lieblingsprojekte online - das HorrorBlog. In dem Blog werde ich und ein paar andere Autoren jeden Tag die neuesten News zu Fantasy- und Horrorfilmen bringen. Wer auch ein Genre-Fan ist sollte unbedingt den Feed abonnieren!
Im aktuellen Projekt bin ich auf die einfache Frage gestoßen wie man Namen die komplett in einer Spalte stehen wieder in Vorname / Nachname aufsplitten kann:
-- namen sind als [nachname] [vorname] gespeichert
SELECT
name,
-- lastname
SUBSTRING(name, 1, NULLIF(LOCATE(' ', name) - 1, -1))
-- firstname
SUBSTRING(name, LOCATE(' ', name) + 1, LENGTH(name)),
FROM users
-- namen sind als [vorname] [nachname] gespeichert
SELECT
name
-- firstname
CASE WHEN LOCATE(' ', name) > 0
THEN SUBSTRING(name, 1, LOCATE(' ', name)-1)
ELSE name
END,
-- lastname
CASE WHEN LOCATE(' ', name) > 0
THEN SUBSTRING(name, LOCATE(' ', name) + 1, LENGTH(name))
ELSE ''
END,
FROM users