Zur Integration von Web-Anwendungen stellen sich IFrames immer noch als ein adäquates Mittel dar, denn sie sind äußerst einfach anzuwenden und stellen an die beteiligten Systeme denkbar geringe Anforderungen.
Ein Nachteil von IFrames ist aber, dass sie keine dynamische Höhen- oder Breitenanpassung auf ihren Inhalt mittels CSS erlauben. Hierfür ist man dann auf den Einsatz von Javascript angewiesen.
Ganz besonders knifflig ist dass dann, wenn das IFrame-Dokument (ich meine das, welches innerhalb des IFrames zur Darstellung kommt) HTTPS erfordert, das äußere Dokument (das Dokument mit dem IFrame-Element) hingegen HTTP benutzt. In diesem Fall hat keines der beteiligten Dokumente Zugriff auf das DOM des anderen, so dass eine direkte Javascript-Manipulation hier nicht möglich ist. Das selbe gilt auch für den Fall, dass die Dokumente aus unterschiedlichen, sich nicht gegenseitig vertrauenden Domains stammen.
Lösung: Ein HTTP-Call-Back-Request. Wie das geht, steht im Artikel...
Jürgen und Meno haben angefangen, ich habe es nachgemacht: Campa 10-fach Kette auf einer Shimano-Schaltung.
Die Shimano Dura-Ace-Gruppe ist ja sehr gut - aber was Marathon-Fahrer nervt, ist die extrem eingeschränkte Lebensdauer der Shimano-10-fach Kette von nur 800 bis 1100 km. Das heißt teilweise alle zwei Wochen oder früher eine neue Kette. Auch die KMC-Ketten halten nur wenig länger.
Das Gute ist, dass die Campagnola 10-Fach Ketten kompatibel sind. Und diese Ketten halten ein vielfaches länger, was den höheren Preis mehr als wett macht - denn auch Ritzel und Kettenblätter werden damit nicht so leicht von einer zu langen Kette heruntergefahren.

Chimere: Shimano mit Campa-Kette und Connex-Schloß
Alternativ zum teuren Campa-Kettennieter kann man die Kette mit einem Ketten-Schloß verschließen. Dann kann man die Kette auch leicht zum Reinigen öffnen. Ich habe sowohl den KMC missing link als auch das Connex-Schloß getestet. Es funktionieren beide - auch auf einem 11er Ritzel (was bei Campa angeblich nicht geht).
Implementiere ich eine Methode, die als Argument ein Modell-Objekte emfangen soll, frage ich mich oft "Benötige ich hier tatsächlich das Exemplar des Objekts, oder genügt auch dessen ID?".
Stellen Sie sich eine Methode append vor, die einen gegeben Song an eine Playlist
anhängen soll:
class Playlist
has_many :entries
# Creates and returns a new playlist entry for given song
def append(song)
enties.create(:song_id => song.id)
end
end
Für den Benutzer dieser Methode bedeutet das, dass er das Song-Objekt zuvor laden
muss. Die append Methode benötigt aber letztlich nur dessen ID. Für eine
Web-Anwendung kann das sehr teuer sein, da die Requests nur IDs liefern und
die Objekte jedes mal neu aus der Datenbank geladen werden müssen.
Die Signatur der Methode dahingehend zu ändern, dass sie grundsätzlich eine ID empfängt, geht oft nicht durchgängig und ist deshalb nicht schön. Es kann also eine gute Idee sein, solche Methoden so zu implementieren, dass sie sowohl Objekt-Exemplare als auch IDs empfangen können.
Nur wie kann ich das implementieren, ohne durch eine zusätzliche Fallunterscheidung
deren Komplexität zu erhöhen? Eine Lösung ist, für Songs die Methode to_s zu
implementieren:
class Song
...
# Returns the record id
def to_i
id
end
end
Nun kann ich die Eingangs erwähnte Methode so formulieren:
# Creates and returns a new playlist entry for given song or song-id
def append(song_or_id)
enties.create(:song_id => song_or_id.to_i)
end
Auf den Parameter song_or_id wird die Methode to_i angewendet. Sie
liefert für einen gegebenen Song dessen Id und für eine gegebene ID deren Wert .
Zur Erfolgskontrolle möchte das Marketing im Nachgang von Newsletter-Aktionen eigentlich immer wissen, wieviele Leser auf welche Links im Newsletter geklickt haben.
Üblicherweise wird diese Aufgabe mittels spezieller Urls gelöst, die von einem Mail-Link-Klick-Zähl-Controller entgegengenommen werden, dessen Aufgabe einzig darin besteht,
den jeweiligen Klick zu zählen und dann zur eigentliche Seite zu redirecten. Beispiel: Anstelle das beworbene Produkt 4711 mit der Url /product/show/4711 im Newsletter direkt zu verlinken, wird der Mail-Link-Klick-Zähl-Controller mit /maillink/product/4711 verlinkt. Die jeweiligen Requests werden vom Controller gezählt (zum Beispiel durch "Ziehen" eines Google-Analytics-Urchin) und dann zur Url /product/show/4711 weitergeleitet.
Die Marketing-Leute wollen aber auch wissen, aus welchem Newsletter der jeweilige Klick erfolgte. Diese Daten bei jedem Link im Newsletter spezifizieren zu müssen ist recht umständlich. Mit Rails geht das aber auch viel einfacher mittels default_url_options:
class NewsletterMailer < ActionMailer::Base
def monthly_newsletter(customer, subject, ...)
default_url_options = {:newsletter => 'monthly', :date => Date.tody}
subject subject
body :customer => customer,
...
end
end
An alle mit link_to im Template monthly_newsletter.rhtml erzeugten Link werden jetzt die Parameter newsletter mit dem Newsletter-Namen und date mit dem Erzeugungsdatum angehängt.
Standardmäßig verbiete ich aus Sicherheitsgründen die SSH-Anmeldung via Passwort mit Hilfe der open_sshd-Konfigurationsoption
PasswordAuthentication no
in /etc/ssh/sshd_conf. Danach sollte es nur noch möglich sein, sich
mittels eines autorisierten SSH-Keys anzumelden.
Zu meiner Überaschung ist das zumindest bei Debian 4.0 nicht so! Die Ursache ist schnell gefunden. Es ist die Konfigurationsoption
UsePAM yes
Diese muss ebenfalls auf no gesetzt (oder auskommentiert) werden.
Almost for all Linux and Unix programs it is possible to copy them from one to another Linux node (as long as both nodes are of the same architecture). What you need to know is the complete list of all files you have copy. Sometimes there are some "hidden" information that you have to copy also, e.g. user accounts, crontab entries or other configuration file entries.
This text describe how to make a instantly runable copy of an existing Oracle installation from one Linux node to another one.
Oracle erlaubt die Unterhaltung von bis zu neun Standby-Datenbanken zur Sicherung gegen fehlerhaft und unbrauchbar werden der Daten, gegen Benutzer- und Administratorfehler sowie gegen Katastrophen. Tritt in der Produktionsdatenbank primäre Datenbank) ein Fehler auf, dann wird eine der Standby-Datenbanken (sekundäre Datenbanken) durch Rollentausch zur neuen primären Datenbank.
Perl ist eine very high level language (VHLL). Sie verbindet high-level Funktionalität wie regular expression, networking und prozess management mit einer kontext-sensitiven Grammatik in einer Benutzerfreundlichen Art. Perl ist eine bessere Textverarbeitungs-Sprache als die meisten anderen häufig benutzten Sprachen, vielleicht sogar die beste. Perl ist ein effektives scripting tool für Systemadministratoren. Perl unterstützt aber auch objekt-orientiertes Programmieren, modulare Software, portable Software-Entwicklung und kann in System eingebettet werden aber auch erweitert werden.
Es gibt eine Menge zu lernen über Perl.
dipe.de
