E-Mail-Adresse mit CSS schützen

Ich wurde öfters angesprochen, wie ich E-Mail Adressen auf Websites schütze. Ich finde die folgende Methode sehr effizient:

Ich verwende ich hierfür eine eigene CSS Klasse, die den Text rückwärts ausgibt. Im Source Code wird die E-Mail Adresse von rechts nach links eingegeben, hier der HTML-Code:

<span class="email">hc.esnesten@ofni</span>

Im Stylesheet ist die Klasse wie folgt definiert:

.email {
  unicode-bidi:bidi-override;
  direction:rtl;
}

Crawler erkennen hier kein Pattern, die E-Mail Adresse wird für den User aber korrekt dargestellt.

Wochentag eines beliebigen Datums im Kopf bestimmen

Ich habe immer über die „Genies“ gestaunt, die den Wochentag eines beliebigen Datums im Kopf bestimmen konnten. Heute habe ich aber gelernt, dass dies gar nicht so schwierig ist, man braucht sich lediglich zwölf Zahlen und eine einfache Formel zu merken.

“Wochentag eines beliebigen Datums im Kopf bestimmen” weiterlesen

Breaking Bad: Die Chemie des Todes

Die preisgekrönte Drama-Serie Breaking Bad erzählt die Geschichte des überqualifizierten und beruflich frustrierten Chemielehrers Walter White.

Die preisgekrönte Drama-Serie Breaking Bad erzählt die Geschichte des frustrierten Chemielehrers Walter White. Nach einer Lungenkrebs-Diagnose sucht er nach Wegen, um seine Familie nach seinem Tod finanziell abzusichern.

Das Schicksal verbindet das verkannte Genie mit einem ehemaligen Schüler, der sich inzwischen als Kleindealer und Amphetamin-Koch durchschlägt.

Die beiden spannen zusammen und beginnen Crystal Meth zu produzieren, wobei Perfektionist Walter neue Standards für diese Droge setzt. Die Nachfrage steigt und eine nicht mehr endende Kette von Ereignissen und Notlügen setzt sich in Gang. Der ängstliche, resignierte Lehrer, dessen Zenit bereits überschritten scheint, wird zu einen sagenumwobenen Kriminellen, den man als Zuschauer einfach lieb haben muss. Dass Walters Schwager bei der Drogenfahndung arbeitet, macht die Situation natürlich nicht einfacher.

Der Vergleich mit den Sopranos bietet sich an, Breaking Bad ist aber besser: Gewalt eskaliert seltener und sowohl Timing als auch die Verstrickungen der Geschichte sind perfekt umgesetzt.

Am meisten beeindruckt jedoch die Leistung von Hauptdarsteller Bryan Cranston, der für seine Performance zurecht dreimal in Serie einen Emmy kassierte. Ich hätte nie gedacht, dass der Vater von Malcolm Mittendrin zu einer solchen schauspielerischen Glanzleistung fähig ist.

Die vierte Staffel lief gerade bei AMC an und ich hoffe, dass noch weitere produziert werden, da Breaking Bad mit Abstand das Beste ist, was das Fernsehen derzeit zu bieten hat.

Rating: ★★★★★

Ruby on Rails Cookies und Sicherheit

Die Standard-Cookie-Einstellungen von Rails sind aus der Security-Perspektive nicht ideal und sollten bei sensitiven Systemen etwas angepasst werden. Dies geschieht in der config/initializers/session_store.rb

MyApp::Application.config.session_store :active_record_store,
        :secure => Rails.env == 'production',
        :http_only => true,
        :expire_after => 60.minutes

Zeile 1: Session infos in der DB speichern (nicht im cookie). Hierbei nicht vergessen, die notwendige Tabelle zu erstellen:

 # rake db:sessions:create

Zeile 2: Secure flag setzen wenn die Produktion mit https läuft
Zeile 3: JavaScript Access auf Cookies verbieten
Zeile 4: Expiration Time setzen

Rails: Hardening Authlogic

Authlogic verwendet ein eigenes Cookie zur Identifizierung der User Session. Da wir diese Info aber sowieso schon in der Session haben, ist es unnötig. Ausserdem wollen wir, dass der Token neu generiert wird, ansonsten funktioniert nämlich der CSRF Schutz nicht mehr.

Folgende Änderung im UserSession Model schafft Abhilfe:

class UserSession < Authlogic::Session::Base

  # kein eigenes cookie anlegen
  skip_callback :after_save, :save_cookie

  # persistence token nach logout neu generieren
  before_destroy do
    record.reset_persistence_token
  end

end

Code: Fullscreen unter OS X Lion

Eins der herausragendsten Features von Lion ist natürlich der native Full Screen Support.

Wo man früher mit Subclassing von NSWindow und hässlichen Initialisierungsblöcken arbeiten musste, reichen nun zwei Zeilen, um seine Applikation in den Full Screen zu bekommen.

Hier ein Beispiel, in der Application Delegate:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // enable full screen mode
    [window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
    [window toggleFullScreen:nil];
}

setCollectionBehaviour aktiviert den Full Screen Modus und platziert auch gleich das zugehörige Icon in der Toolbar.
Um tatsächlich in den Full Screen zu kommen, müssen wir noch toggleFullScreen aufrufen.

OS X Lion: Erste Tweaks

So stellst Du bei OS X Lion das vertikale Scrolling um und machst das Dashboard wieder transparent.

Das gestern erschienene OS X Lion macht einen sehr guten ersten Eindruck, und zeigt vorbildlich, wie ein Betriebssystem-Upgrade vonstatten gehen sollte.

Nach erstem Rumpröbeln musste ich aber folgende Dinge sofort umstellen:

Vertikales Scrolling ist verkehrt

Das vertikale Scrolling mit zwei Fingern ist nun seitenverkehrt, was sehr lästig ist, wenn man sich schon mal an eine Variante gewöhnt hat. Dies kann man in den System Einstellungen unter Trackpad Scroll & Zoom ändern, indem man den Haken bei „Scroll direction: natural“ entfernt.

Dashboard ist nicht mehr transparent:

Das Dashboard ist nun ein eigener Space, dabei habe ich z.B. oft das Taschenrechner-Widget benutzt, um irgendwelche Zahlen auf dem Bildschirm zu addieren. Wer sein fotografisches Gedächtnis oder Kopfrechen-Künste nicht trainieren will, findet die nötige Einstellung ebenfalls in den System Einstellungen unter Mission Control / Show Dashboard as Space.

Ich hoffe sehr, dass Google Chrome auch bald das horizontale Blättern unterstützt, bis dahin surfe ich jedenfalls wieder mit Safari.

Ein perfekter Mix

Ich war vor kurzem mit der Dame meines Herzens in einem Club. Die Anlage dort hörte sich schon ziemlich abgenutzt an, die Tweeter schienen überstrapaziert und der Raum hatte Resonanzprobleme im Bass.

Okay, nach einigen Gin-Tonics störte das nicht mehr und Ohren gewöhnen sich ja auch an schlechte Raumverhältnisse. Der Musikgeschmack des ersten DJs liess zu wünschen übrig, was sich in allgemeinem Rumstehen äusserte.

Tragisch war jedoch, dass an fast jedem Mix irgendwas nicht stimmte. Mal war er nicht transparent genug, mal war die Snare zu dünn oder der Attack des Kompressors bei den Overheads zu kurz.

Doch dann kamen die Foo Fighters mit „Pretender“. Sämtliche Raumprobleme schienen auf einmal wie von Zauberhand zu verschwinden, die Leute flippten aus, die Musik erfüllte jede kleinste Ecke des Raums und liess die Gefühle mitschweben.

Meine schönere Hälfte und ich fanden absolut nichts, das man an diesem Meisterstück der Mischkunst benörgeln könnte. Wir flippten ebenfalls aus, und es dauerte über eine Stunde, bis ein weiterer Mix den Club derart bezauberte.

Später fand ich heraus, dass Pretender von Rich Costey, ein Engineer den ich seit seiner Arbeit am Album Absolution von Muse bewundere, gemischt wurde.

Und hier schliesst sich der Kreis: Das zweite Zauberstück war Uprising von Muse, gemischt von Mark ‚Spike‘ Stent, der derzeit gefragteste Mixing Engineer.

Diese beiden zeigen auf, was der Unterschied von einem guten zu einem perfekten Mix ist, und wie nur sehr wenige dazu in der Lage sind. Listen and learn!

Lass Dir nicht den Ton vermischen

Wenn Deine Band einen Gig hat, lass sie nie von jemandem mischen, den Du nicht kennst. Er wird Euch sehr wahrscheinlich den Ton (und dadurch vielleicht den ganzen Gig) versauen – wenn auch nicht absichtlich (bei Contests geschieht das auch öfters mal gezielt, daher grundsätzlich zu meiden).

Diese gilt übrigens auch dann, wenn der Tonmann mit einem ganzen Lastwagen voll Equipment einfährt. Equipment kann leider kein Talent ersetzen, und Du weisst nicht, ob die Firma einfach mal eben den Lehrling geschickt hat, da ihr Top-Mann gerade an einem lukrativeren Job mischt.

Dies ist übrigens der Grund, warum erfolgreiche Bands ihren eigenen Mixing Engineer als unsichtbares Bandmitglied mitführen, was Deine Band sich ebenfalls angewöhnen sollte.

Mehr Präsenz für Vocals

Hier ein wertvoller Tipp, den man anwenden kann, um den Lead Vocals mehr Präsenz zu verleihen und der sich in der Praxis bestens bewährt hat:

Richte einen Stereo Aux-Weg ein und schalte dort einen modulierenden Pitch Shifter rein. Die Tonhöhe sollte nicht zu stark moduliert werden, ich setze als Limit meist +/-0.6 cents, z.b. -0.6 links und +0.6 rechts. Als Plug-in kann ich hier Waves Doubler empfehlen. Die Modulationsfrequenz sollte L + R ebenfalls etwas unterschiedlich sein und nicht zu schnell.

Wenn Du jetzt den Send-Regler bei den Lead Vocals aufdrehst, kommt die Stimme wie von Zauberhand nach vorne. Richtig dosiert ist dies ein Trick, auf den man nicht mehr verzichten kann!

Fünf Schritte zum Mix

Mixing ist eine kreative Arbeit, klar. Aber auch ein Maler muss erst mal Farben auf die Palette drücken, bevor er die Leinwand attackiert. Hier erfährst Du, wie man systematisch an einen Mix heran gehen kann.

1. Vorbereitung

Schau zu, dass zuerst all die langweiligen Sachen wie Editing, Anordnung und Benennung der Spuren etc. vorher machst. Beim Mischen wollen wir uns nicht ablenken lassen und flüssig arbeiten können. Mach einen Rough Mix, damit Du hören kannst, worum es geht und Du die wichtigsten Elemente identifizieren kannst. Sobald Du ahnst, wo der Song hin will, kannst Du starten.

2. Panning

Versuch ausschliesslich durch Panning und Leveling rauszuholen, was möglich ist. Panning ist ein ideales Mittel, um Maskierung entgegen zu wirken.

3. Dynamik

Jetzt solltest Du die Dynamik der Instrumente unter Kontrolle bekommen, oft wieder zurück zu Schritt 2. Einige Dynamikkorrekturen lösen wir erst in Schritt 5.

4. EQ

Aufnahmeprobleme lösen oder kreatives Sound Shaping mittels EQ ist nun an der Reihe. Wenn möglich lieber Frequenzen filtern als boosten.

5. Effekte und Riding

Der Mix sollte nun schon da sein, wahrscheinlich wirst Du wieder zu Schritt 2 gehen oder Dich nun um Effekte und Ridings kümmern.