Zeit ist mittlerweile oft teurer als Geld.
Seite 4 von 10
Neulich habe ich folgende E‑Mail erhalten, um Werbung zu machen, die nicht als Werbung gekennzeichnet werden sollte.
Hallo Herr Klingler,
wir sind ein unabhängiger Fernbusvergleich, [ URL ], der die besten Angebote für die Wunschstrecke anzeigt. Auch Umsteigemöglichkeiten haben wir mittlerweile im System.
Mit großem Interesse haben wir Ihren Artikel „Fernbusse in Deutschland” gelesen. Wäre es denn möglich nachträglich noch erwähnt zu werden? Gerne können wir dafür auch eine kleine Aufwandsentschädigung anbieten. Wir dachten hier an 50 Euro.
Freundliche Grüße
[ Name ]
Ich frage mich, wie viele Blogger wohl auf solche Anfragen eingehen und wie viel Schleichwerbung ich wohl schon gelesen habe, ohne es mitzubekommen. Tja.
Problem: In einem Ruby on Rails-Projekt wurden einige Übersetzungen nicht gefunden. Obwohl alles korrekt in den i18n-locale-Dateien eingetragen war, die auch alle geladen wurden.
Lösung: i18n-Locale-Dateien werden in Rails sequentiell eingelesen. Datei für Datei. Wird ein neuer Schlüssel gefunden, wird dieser definiert. Ist der Schlüssel aber schon vorhanden, wird er überschrieben. Gibt es also mehrere Schlüssel in mehreren Dateien (oder in einer Datei, das liefe auf das gleiche hinaus), sind in der Anwendung nur diejenigen Übersetzungen desjenigen Schlüssels vorhanden, der zuletzt eingelesen wurde. Fies.
Bei einem Ruby-on-Rails-Projekt funktionierte lokal alles — aber in der Umgebung production (unter nginx) verschwanden die Flash-Meldungen (zum Beispiel nach dem Login über Devise) nicht mehr — beziehungsweise erst, als eine Seite gerändert wurde, die von einem anderen Controller verwaltet wird.
Da das Projekt Devise teilweise per Ajax nutzt und die einige Flash-Meldungen selbst ausgibt, dachten wir erst an alles andere; bis wir, als uns nach etlichen Stunden Debugging langsam die Optionen ausgingen, wir einfach mal den Inhalt der development- und production-Dateien in config/environments austauschten. Und siehe da, das Problem war weg.
Der Grund des Problems war folgende Einstellung:
config.action_controller.perform_caching = true
Nachdem wir sie in production auf false gesetzt haben, funktionierten die Flash-Meldungen wieder. Rückblickend ist das eigentlich klar, aber darauf zu kommen, hat gedauert.
Merke daher: Gibt es Probleme mit dem Anzeigen von Flash-Meldungen, immer auch an diese Caching-Einstellung denken.
Auf dem heutigen Open Tech School-Treffen habe ich von dem Afrika Hack Trip 2013 erfahren. Neun Hacker reisten innerhalb von fünf Wochen durch vier afrikanischen Länder und vernetzten sich dort mit der Tech-Szene.
Der Vortrag hat Appetit auf mehr gemacht (im Blog sind auch ähnliche Folien dazu) und ich empfehle allen, mal durch die Webseiten zu stöbern. Und insbesondere durch das Blog, in dem ich mich gerade über interessante technische und soziale Entwicklungen festlese, über die ich bisher nirgends etwas gelesen habe.
(Ich habe gerade das dringende Bedürfnis, das für Südamerika zu machen. Aber vielleicht komme ich lieber erstmal komplett in Berlin an^^ ;-)
Auf dem letzten BlogUp Berlin-Treffen habe ich am Rande auch von der Schwierigkeit mancher Blogger erfahren, (Hobby-) Fotografen zu finden. Etwa für Mode- oder Lokalblogs.
Schnell ging mir durch den Kopf: Es fehlt eine einfache Plattform, auf der Hobby-Fotografen Profile anlegen können, um von Bloggern oder anderen gefunden werden zu können. Die Blogger erhalten gute Bilder und die Hobby-Fotografen können ihre Kreativität auch mal in anderem Umfeld austoben.
Auf die schnelle habe ich keine solche Plattform gefunden. Wahrscheinlich muss sie noch erstellt werden. Ich würde mich direkt auf einer solchen anmelden.
Also, wer hat hier gerade zu viel Zeit?
Meistens trinke ich Kaffee mit Milch und Zucker, aber manchmal ersetze ich auch den Zucker durch Sirup. Bei manchen Sirup-Sorten wird der Kaffee aber oft zu süß, will man das Aroma etwas stärker schmecken.
Vor einem Jahr habe ich die Lösung dafür in Erlangen bei Königmanns Kaffeerösterei gefunden: Man gibt das Aroma direkt bei (oder nach?) dem Rösten dazu. Die Kaffeebohnen nehmen das Aroma auf und der Kaffee erhält eine gewisse (Nuss‑, Orange‑, Vanille‑, Schokoladen‑, usw.) Note. Ohne Zuckerzusatz. Die Süße kann damit unabhängig vom Aroma beeinflusst werden.
Wer also auch ab und zu Sirup zu Kaffee verwendet, sollte den Begriff „Aromakaffee“ im Hinterkopf behalten und solchen mal probieren, wenn sich die Gelegenheit dazu bietet.
Wahrscheinlich wird dies aber eher selten der Fall sein, wenn man nicht direkt danach sucht. Nach meiner Erfahrung gibt es diesen Kaffee nur in sehr wenigen Röstereien. Also Augen auf und wie ich immer wieder in Cafés nachfragen, dann zieht das Angebot vielleicht irgendwann mit.
(Und bis dahin kann man auch mal Online-Shops ausprobieren; die oben erwähnte Rösterei hat auch einen. Oder mir Bescheid geben, dann bringe ich mal wieder eine Lieferung nach Darmstadt oder Berlin mit :-))
Ich experimentiere seit einiger Zeit hin und wieder mit JavaScript-Frameworks wie Angular.js oder Ember.js. Darin kann man mittlerweile komplette MVC-Anwendungen schreiben, die komplett im Browser laufen können und ggf. höchstens noch per JSON/XML mit einem Server-Skript zur persistenten Datenspeicherung kommunizieren müssen. (Wobei auch das teilweise schon lokal geht.)
Ein interessanter Aspekt, der mir heute Abend bei einem Gespräch auf dem Angular.js-Meetup gekommen ist: Es gibt einen Trend, immer mehr Logik in das Frontend (→ Browser) zu verschieben.
In den meisten Webanwendungen wird derzeit die meiste Logik im Backend in einer eigenständigen (Skript-) Sprache geschrieben und daraus HTML-/JS-/CSS-/usw.-Code erzeugt und vom Browser gerendert. Zwar wird die Darstellung zwar oft noch per JavaScript gerendert, aber die wesentliche Logik liegt im Backend.
Die JavaScript-Frameworks laufen dagegen vollständig im Browser ab. Daraus folgt dann aber auch, dass die gesamte Logik öffentlich wird. Jeder kann sich im Browser durch die JavaScript-Dateien hangeln, die komplette Logik nachvollziehen, auf Schwachstellen analysieren und gar komplett herunterladen, verändern und woanders manipuliert hochladen.
Das eröffnet nebenbei völlig neue Möglichkeiten zum „Plattformklau” oder zu Angriffen, bei denen man nicht mal mehr andere Seiten nachbauen muss, weil man sie komplett auf einen eigenen Server kopieren kann. Schnell noch eine Vertipper-Domain registrieren und dann mal schauen, wer sich so anmeldet. Die Anmeldedaten kann man dann auch gleich speichern, um damit auf der richtigen Plattform fremde Nutzerkonten übernehmen zu können.
In diesem Zusammenhang lohnt sich auch ein Blick auf die Seite nobackend.org, auf der bereits Ideen und Lösungen gesammelt werden für eine Welt, die vollständig ohne Backend auskommt.
Die Idee finde ich für einige Anwendungsfälle ganz interessant und ich werde das auch weiterhin beobachten. Aber es fühlt sich irgendwie komisch an, eine Plattform so leicht komplett kopieren zu können. Vielleicht bin ich da aber auch nur zu voreingenommen, weil ich es bisher anders nicht kenne. Mal schauen, wie sich das entwickelt.