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

#506

28.06.2011 11:16
0 Kommentare
Share
  • config
  • facebook
  • server
  • nginx
  • hotlinking
  • referer
  • block
  • how-to
Almost two weeks ago I moved my personal blog-project horrorblog.org from a domainfactory managed hosting server to a JiffyBox which is a scalable cloud server solution also by domainfactory. I won’t talk about the setup for now (but later this or next week) but I want to show you an example for a nginx config file that prevents your images from beeing hotlinked but still enabling google and facebook.

Prevent hotlinking in nginx is really simple and some rules and examples can be found via google:
# apply this rule on any location that’s an image using Regexp
location ~* \.(png|gif|jpg|jpeg|swf|ico)(\?[0-9]+)?$ {
  # block empty blocked or whiteliste referers
  valid_referers none blocked horrorblog.org www.horrorblog.org;
  if ($invalid_referer) {
    return 403;
  }
}

This works fine, unless you won’t have your images displayed on facebook when anybody likes your stuff with the facebook share button (og:image) or in google image search. The solution that enables facebook to grab the images from your host is by adding
~\.facebook\.
and
~\.fbcdn\.
to the whitelist of hosts:
# apply this rule on any location that’s an image using Regexp
location ~* \.(png|gif|jpg|jpeg|swf|ico)(\?[0-9]+)?$ {
  # block empty blocked or whiteliste referers
  valid_referers none blocked horrorblog.org www.horrorblog.org ~\.google\. ~\.yahoo\. ~\.bing\. ~\.facebook\. ~\.fbcdn\.;
  if ($invalid_referer) {
    return 403;
  }
}

#503

14.07.2010 11:40
0 Kommentare
Share
  • firefox
  • tool
  • open
  • source
  • console
  • Nerd
  • extension
Screenshot vom Vimperator in Aktion
Auf dem LinuxTag 2010 hat Caspar die Vimperator Erweiterung für den Firefox Browser vorgestellt die ich mir zu Hause gleich zu Gemüte geführt habe.

Die Erweiterung ist total für Nerds gedacht. Man kann den kompletten Browser, alle Links und Befehle von der durch den Vimperator hinzugefügten Kommandozeile aufrufen. So bekommt man noch mal mindestens 100 Pixel in der Höhe Platz für die Websites und gerade auf Netbooks ist das eine Menge Platz!

Nach einer leichten Einführungsphase um die wichtigsten Befehle wie
o www.spon.de[ENTER]
für Seite aufrufen oder
t www.horrorblog.org[ENTER]
für Tab öffnen zu lernen hab ich mir mitlerweile die komplette Bedienung zugelegt und auch schon mein erstes "Plugin" geschrieben das mit die aktuelle URL mit Bitly als ShortURL in die Zwischenablage legt. Hier meine eigene
.vimperatorrc
Datei die noch ein paar mehr Sachen macht:
" only use with buftabs plugin
set showtabline=0
"
custom colorsheme
colorscheme darkness
" set textmate as editr

set editor="mate -w"
" show hover links in status bar

set showstatuslinks=2
js document.getElementById("status-bar").setAttribute("moz-collapsed", false);
" no error sound, just flash display

set errorbells visualbell
" alternative tab navigation

map b gt
map v gT
" tab navigation via arrow keys

map <Left> <C-p>
map <Right> <C-n>
map h <C-p>
map l <C-n>
" bit.ly shortener.

javascript <<EOF
shortenURLIsGd = function (url) {
  var req = new XMLHttpRequest();
  " get your username and api key from bit.ly!!!

  req.open("GET", "http://api.bit.ly/v3/shorten?login=[Username]&apiKey=[API_KEY]&format=txt&longUrl=" + escape(url), true)
  req.onreadystatechange = function (ev) {
    if (req.readyState == 4) {
      if (req.status == 200) {
        util.copyToClipboard(req.responseText, true);
      } else {
        liberator.echo(req.responseText);
      }
    }
  }
  req.send(null);
}
EOF
map <silent> short :javascript shortenURLIsGd(buffer.URL);<CR>
map <silent> bitly :javascript shortenURLIsGd(buffer.URL);<CR>

Des weiteren sei noch erwähnt, dass man noch weitere ColorShemes oder Vimperator Plugins im Internet findet. Ein super Plugin ist auch das Buftabs Plugin, dass sogar die Tableiste überflüssig macht.

[UPDATE #1] Dank der Aktualisierung von Geshi, das das Code-Highlighting hier im Blog erledigt sieht das Vim-Script jetzt auch schön bunt aus.

#498

04.06.2010 12:39
3 Kommentare
Share
  • code
  • script
  • bash
  • shell
  • apache
  • benchmark
  • ab
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!

#496

27.05.2010 03:49
0 Kommentare
Share
  • osx
  • usa
  • software
  • windows
  • game
  • Case
  • Sensitive
  • Steam
  • Valve
  • Spiele
  • Plattform
Es ist schon erstaunlich und lobenswert, dass VALVE nach Jahren der Abstinenz auf -nix-basierten Systemen endlich seine STEAM-Plattform auch für Macs anbietet. Dumm nur wenn man, wie ich, den kram runterlädt, starten will, aber nur mit dieser lapidaren Meldung abgespeist wird die ihr oben sehen könnt. Anscheinend kann man STEAM nur benutzen, wenn man seine Festplatte richtig formatiert hat.

Nach dem ich Google befragt habe, finde ich ein paar Anleitungen wie man STEAM auch auf einem Case-Insensitiven System zum laufen bekommen kann. Ich bin aber gar nicht davon angetan, meine volle Fesplatte noch weniger, dass ich eine weitere Partition nur für STEAM, in case-sensitive anlegen soll! Das kann ja eigentlich auch nicht hinhauen. Ich bin selbst Programmierer und bin der Meinung, dass die Jungs bei VALVE mal ihren Code aufräumen müssen, nicht ich meine Platte umgestalten!

#486

24.09.2009 13:52
1 Kommentar
Share
  • code
  • programmieren
  • textmate
  • eclipse
  • shortcut
  • tip
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

#485

08.09.2009 13:30
0 Kommentare
Share
  • textmate
  • tasks
  • task
  • todo
  • list
  • bundle
  • plugin
  • macromates
  • productivity
  • produktivität
  • listen
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

#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.

#426

13.12.2008 01:30
0 Kommentare
Share
  • code
  • osx
  • terminal
  • bash
  • shell
Für alle die mal gerne in großen Listen auf ihrem Apple Suchen und gerne wissen wollten wie viel da denn drauf ist (in einem Ordner)

Alle HD-Filme daran erkennen das man die irgendwie im Dateinamen mit "HD" markiert hat:
$ ls | grep HD

Wie viele können das wohl sein?
$ ls | grep HD | wc -l

Das ganze kann man auch einfach abspeichern!
$ ls | grep HD > ~/Desktop/HD_Movies.txt
Speichert euch alles mit HD im Namen auf dem Desktop als Textdatei.

So und um das mal ein wenig praktisch zu machen: Ein Befehl, der euch alle HD Filme aus eurem Home-Movie Ordner auf dem Desktop speichert:
$ ls ~/Movies/ | grep HD > ~/Desktop/HD_Movies.txt

Das ~ bekommt ihr btw. mit Apfel+N (auf der deutschen Klampfe), danach ein Leerzeichen machen!

Das schöne ist - jeder Mac kann das! Ja sogar jeder auf nem *-NIX System basierender Rechner! Ich hab das nicht rausgefunden. Aber das sog. Piping ist so alt und trotzdem noch so toll aktuell und cool - zieht euch hoffentlich die Socken aus. Demnächst noch mehr - "Wie finde ich alle MP3s von einem Künstler" ... bald!

Kommentieren und noch mehr nachfragen ist erwünscht!

#360

13.07.2007 00:14
0 Kommentare
Share
  • seele
  • Urlaub
Nach ein paar Tagen auf Norderney und dem netten wetter bin ich wieder da, fresher as ever! Die starke Briese und das total natur-ding hat mich echt sowas von enstpannt :) Noch ein paar Tage und dan gehts weiter bei tripsbytips!

Auch nochmal ein hinweis auf die liste links im blog - dort gibts immer feine neue Superpositioner gigs die man auch per iCAL/Outlook oder Google Calendar abonnieren kann. So verpasst ihr auch nicht den nächsten Gig am 4. August! Hey!

Ist super wieder hier zu sein! Klingt voll bekloppt, aber der eine Tag auf der Insel und die Reise dahin und dann die Rückkehr hat mich echt gefreut! Berlin ist einfach supertoll! *ding* *ding* *ding*

#342

30.12.2006 16:51
1 Kommentar
Share
  • berlin
  • Web
  • freunde
  • Musik
  • Party
  • Flyer
Nachdem Pentagonik, Anfang 2005 gegründet immer und immer weiter wächst war es an der Zeit die Seite mal auf Vordermann zu bringen! Das ist jetzt auch passiert - endlich ist alles aufgeräumt. Label und Events sind nun auch klar von einander getrennt.
Mit dem Popauf-Musik-Player kann man auch bequem in die Songs reinhören und sich auch playlisten zusammenklicken. Großen Respekt an Don und Özgür, der für das wohl aufwendige CMS zuständig war, die das Ding neben normalem Job in nur 2 - 3 Monaten aufgezogen haben!

Wer morgen noch nich weiss, was er machen soll (lol) - der kann ja bei der Netlag Party im RAW Tempel vorbeischauen.
  • 1
  • 2
  • weiter »
marceleichner HTML5 Harrison Theme (Validate Source), © 2010 by Ephigenia M. Eichner, Impressum