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
Piv-Berlin, Immobilienverwaltung Verwaltung Berlin Peter Arold Dachdeckermeister im Vogtland und Werda blogoscoop

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

#497

30.05.2010 21:31
0 Kommentare
Share
  • buch
  • javascript
  • js
  • O’Reilly
  • Verlag
  • Meinung
Da mir schon vor einiger Zeit der Computer-Lesestoff ausging, hab’ ich mir letzte Woche jQuery Cookbook bei Amazon bestellt.
Das Buch ist angefüllt mit praktischen Beispielen und Lösungen, auf die man, wenn man viel mit jQuery arbeitet, schon gestoßen ist. Wenn ihr Glück habt findet ich viele, oder so wie ich, weniger neue Sachen in dem Buch. Auf jeden Fall sollte man mal reinschauen! Die deutsche Ausgabe kommt im Juni raus, jQuery Kochbuch kann man schon vorbestellen.

#494

02.05.2010 21:25
3 Kommentare
Share
  • code
  • tutorial
  • tool
  • script
  • bash
  • shell
  • Gewinner
  • Email
  • Verlosung
  • Beispiel
  • Datei
Wie manche von euch wissen betreibe ich seit einiger Zeit ja ein kleines aber mittlerweile echt ganz gut erfolgreiches Blog über Horror- und Fantasyfilme. Bei dem dritten Gewinnspiel haben über 150 Leute mitgemacht und mir eine Email geschickt. Leider etwas viele um per Losverfahren Gewinner auszuwählen. Das folgende Beispiel wird für erfahrene Programmierer nichts neues sein oder total langweilig. Eventuell hilft’s aber dem einen oder anderen weiter ;-)

Einfach mit OSX Mail die Mails extrahieren, die das richtige Lösungswort enthalten, oder die man untersuchen möchte. Dabei erstellt Mail einfach eine Datei mit allen Email-Quelltexten untereinander in einer Textdatei. Diese kann man super mit der Bash maltretieren und die Absenderadresse extrahieren:
grep -Z -P '^From:s(.+)' mail_export.txt | uniq
Wenn man dann noch zwei Gewinner auswählen möchte, braucht man nur doch die Anzahl der Zeilen in der Datei und wählt dann einfach zwei aus. Das ganze Shell-Script sieht dann so aus:
#!/bin/bash
##########################################################
# Extract n radom emails from a file
#
# Usage:
#   winner.sh [filename] [count]
#
# Author: Marcel Eichner // Ephigenia <love@ephigenia.de>
# Date: 2009-03-30
##########################################################
TMPFILE=`mktemp -t emails` || exit 1
grep -Z -P '^From:s(.+)' "$1" | uniq > $TMPFILE
# select random line from file
LCOUNT=`wc -l "${TMPFILE}" | awk ' { print $1; }'`
echo "Choosing ${2:-1} winners from ${LCOUNT} emails"
for (( i = 0 ; i < ${2:-1}; i++ ))
do
  LINENUMBER=$((($RANDOM % $LCOUNT) + 1))
  sed -n ${LINENUMBER}p ${TMPFILE}
done

Das Script kann wenn es ganz doof kommt auch zwei mal die gleichen Absender auswählen. Wenn das passiert kann man das Bash-Script ja gleich noch mal laufen lassen. Danke an Caspar der noch weitere hilfreiche Anregungen gegeben hat!

#482

13.08.2009 22:16
10 Kommentare
Share
  • gmail
  • skype
  • addon
  • firefox
  • slow
  • facebook
  • javascript
Der Firefox meiner Freundin hatte enorme Probleme sich mit Facebook anzufreunden und da hab’ ich mich in die Untiefen von Windows Vista begeben müssen. Doofe Sache das. Dann hat sich rausgestellt, dass man einfach nur das Skype Addon (was macht das eigentlich!?) deinstallieren muss. (Das soll btw. auch bei GMail helfen!)
Wem’s hilft kann sich ja in den Kommentaren bedanken!

#480

06.08.2009 18:13
0 Kommentare
Share
  • lustig
  • internet
  • video
  • youtube
Gerade hat mir Jann diese wunderbare Sendung mit der Maus Episode auf Youtube geschickt. Echt ein totaler Klassiker! Geht ein wenig lange aber lohnt sich auf jeden Fall da mal rein zu schauen.

#470

15.07.2009 16:37
0 Kommentare
Share
  • code
  • javascript
  • script
  • klassen
  • lib
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!

#466

02.07.2009 16:19
2 Kommentare
Share
  • code
  • script
  • bash
  • shell
  • file
  • changed
  • bell
  • log
Aus aktuellem Anlass wollte ich ein Shell-Script schreiben das mir anzeigt, wenn sich eine Datei ändert (ein Log-File) und diese dann kurz ausgibt. Jedes mal wenn sich also die Datei ändert, klingelt es im Terminal (printf 'a') und ich bekomme die letzten Einträge angezeigt:
interval=${2:-1}
filename=$1
filename=${filename:?"missing."}
while true
do
  if test `find "$filename" -mmin ${interval}`
  then
    clear;
    printf "`date`n$filenameann";
    tail "$filename"
  fi
  echo "sleeping for next check in $((interval * 60)) seconds ..."
  sleep $((interval * 60))
done

Man kann das auch auf die Spitze treiben, aber so macht’s erstmal das was ich wollte. Benutzt wird es dann wie folgt:
./fileChanged.sh folder/testlog.log
Checkt dann jede Minute ob die Datei sich geändert hat. Wer rausbekommt wie man das mit Sekunden machen kann sagt mir Bescheid :)

#465

01.07.2009 11:23
1 Kommentar
Share
  • code
  • plugin
  • javascript
  • tool
  • js
  • jquery
  • slideshow
  • effect
  • animation
  • free
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!

#457

05.06.2009 13:49
0 Kommentare
Share
  • code
  • osx
  • App
  • terminal
  • tool
  • script
  • scripting
  • apple
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.
  • 1
  • 2
  • 3
  • weiter »
marceleichner HTML5 Harrison Theme (Validate Source), © 2010 by Ephigenia M. Eichner, Impressum