<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Unter der Haube von mysedcard.tv</description><title>mysedcard.tv Techblog</title><generator>Tumblr (3.0; @msc-tech)</generator><link>http://tech.blog.mysedcard.tv/</link><item><title>SVN ade, Ahoj GIT</title><description>&lt;p&gt;Bisher wurde für die gesamte mysedcard Applikation serverseitig SVN für das Source Code Management verwendet. Das führte immer mal wieder zu Problemen und dazu, dass ich einige zeit investieren musste, um das fehlerhafte Repository wieder gangbar zu machen. Heute morgen  war dem wieder so. Nachdem ich einiges an externem Code ausgetauscht hatte und das Ganze auf den Server zurückschieben und deployen wollte, ging nach dem ersten Commit nichts mehr. Nicht vorwärts und nicht rückwärts. Ziemlich dumme Situation. Ich entschloß mich nun final dazu einen eigenen GIT Server aufzusetzen und die gesamte Applikation auf GIT zu portieren.&lt;/p&gt;
&lt;p&gt;Mehr dazu könnt ihr bei Interesse in meinem &lt;a href="http://blog.stefanbotzenhart.com/"&gt;persönlichen Blog&lt;/a&gt; lesen.&lt;/p&gt;</description><link>http://tech.blog.mysedcard.tv/post/103302141</link><guid>http://tech.blog.mysedcard.tv/post/103302141</guid><pubDate>Mon, 04 May 2009 08:32:06 -0400</pubDate></item><item><title>kleine Updates</title><description>&lt;p&gt;Nachdem nun schon ein paar Tage nichts mehr passiert ist, heute wieder mal ein paar Updates.&lt;/p&gt;
&lt;p&gt;Wir haben den &lt;a target="_self" title="mysedcard News" href="http://www.mysedcard.tv/news"&gt;News Bereich&lt;/a&gt; um ein Archiv erweitert. Die neuesten Artikel findet ihr weiterhin auf der ersten Seite, um euch die älteren Beiträge anzuschauen könnt ihr nun einfach mit der Blätterfunktion ins Archiv wechseln.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://data.mysedcard.tv/blog/news-pagination.png" alt="News Blätterfunktion"/&gt;&lt;/p&gt;
&lt;p&gt;Die Nachrichten werden nur ordentlich sortiert. Bisher war die Sortierung aufgrund eines Fehlverhaltens des Systems nicht gerade durchsichtig. Nun erscheinen die aktuellsten Nachrichten immer ganz oben.&lt;/p&gt;</description><link>http://tech.blog.mysedcard.tv/post/99663173</link><guid>http://tech.blog.mysedcard.tv/post/99663173</guid><pubDate>Fri, 24 Apr 2009 10:22:26 -0400</pubDate><category>update</category></item><item><title>rss feeds sind toll</title><description>&lt;p&gt;… und deswegen haben wir nun auch einen für die News bei &lt;a title="zu mysedcard.tv" href="http://www.mysedcard.tv"&gt;mysedcard.tv&lt;/a&gt; integriert. Den &lt;a title="zum RSS Feed" href="http://www.mysedcard.tv/news/rss"&gt;RSS Feed&lt;/a&gt; einfach mit eurem News-Reader der Wahl abonnieren und los geht’s. Ansonsten ist das ja in keinster Weise eine spektakuläre technische Neuerung.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://data.mysedcard.tv/blog/rss-feed-added.png" alt="RSS Feed"/&gt;&lt;/p&gt;</description><link>http://tech.blog.mysedcard.tv/post/98496154</link><guid>http://tech.blog.mysedcard.tv/post/98496154</guid><pubDate>Tue, 21 Apr 2009 08:42:00 -0400</pubDate><category>mysedcard rss feed</category></item><item><title>Blog hosting nur zeitweise bei tumblr</title><description>&lt;p&gt;Der Techblog wird nun bis auf weiteres heir bei tumblr.com verwaltete werden. Das ist zwar auch noch nicht optimal, aber wesentlich besser als noch bei wordpress.com.&lt;/p&gt;
&lt;p&gt;Allerdings gefällt es mir ganz und gar nicht, dass man keine Kommentare zu den Beiträgen abgeben kann. Deswegen wird auch das hier nicht die letzte Lösung sein. Ich hoffe ich finde bald eine gute Lösung. Im Zweifelsfall muss selber Hand angelegt werden.&lt;/p&gt;
&lt;p&gt;Für Hinweise bin ich natürlich jedem dankbar. Diese einfach an techblog@mysedcard.tv schicken. Danke!&lt;/p&gt;</description><link>http://tech.blog.mysedcard.tv/post/92539926</link><guid>http://tech.blog.mysedcard.tv/post/92539926</guid><pubDate>Fri, 03 Apr 2009 06:54:29 -0400</pubDate><category>tumblr</category><category>hosting</category><category>mysedcard</category><category>mysedcard.tv</category></item><item><title>Bilder mit (scheinbar) runden Ecken</title><description>&lt;p&gt;Ich habe einige Tage nichts mehr aus dem Fundus von mysedcard hören lassen. Wir mussten uns in letzter Zeit auf das Setup unserer Google Kampagnen konzentrieren und dabei ist der versprochene Blog über die Umstellung der Bilder auf der Strecke geblieben. Die Google Kampagnen sind nun online und die ersten Benutzer finden darüber ihr neues Zuhause :)&lt;/p&gt;
&lt;p&gt;Nun aber zur Umstellung der Bilder. Ein wenig Vorgeschichte dazu. Die Anforderungen der Designabteilung, in Person Sebastian, wollte zu Beginn unbedingt runde Ecken haben, da das “super Schick sei”. Mir war von Anfang klar, dass das nur gut funktionieren kann, wenn die Ecken transparent sind. Somit mussten PNG’s erzeugt werden. Das habe ich relativ einfach mit einem &lt;a href="http://github.com/dookie/paperclip/tree/master"&gt;Paperclip Fork&lt;/a&gt; von &lt;a href="http://github.com/dookie"&gt;dookie&lt;/a&gt; gemacht. Danke an dieser Stelle! Er hat genau das umgesetzt, was ich mir vorgestellt hatte.&lt;/p&gt;
&lt;p&gt;Hierbei entsteht nur ein Problem und zwar, dass man aufgrund der PNG’s eine riesige Datenmenge erzeugt. Pro User sind hier im Schnitt 10MB zusammengekommen. Ein weiterer Nachteil des Ganzen ist, dass enorm viel Traffic erzeugt wird. Wir hatten an guten Tagen bei nur 500 Besuchern bereits 6-10 GB an Traffic pro Tag, was bei der erwarteten Menge an Usern ein ernsthaftes Problem darstellt.&lt;/p&gt;
&lt;p&gt;Ok, die PNG’s mussten weg! Das war klar. Doch wenn JPG, dann müssen die runden Ecken irgendwie  zurechtgelogen werden. Hier kann man auch mehrere Ansätze verfolgen.&lt;/p&gt;
&lt;p&gt;Der erste, den ich aber nicht wirklich angeschaut habe ist Jquery Corners.&lt;/p&gt;
&lt;p&gt;Ein bekannter von mir hat mir dann eine Lösung vorgestellt, die relativ praktisch ist.  Man nehme einen div und lege das abzurundende Bild hinein:&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://pastie.org/435783.js"&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;Dann werden mittels jquery vier kleine Divs in den masked-Div injiziert und mit CSS positioniert:&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://pastie.org/435782.js"&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;Somit werden die Bilder mit kleinen transparenten Grafiken versehen, die sich in die Ecken der Bilder legen und somit die runden Ecken faken. Der Ansatz ist in sofern gut, dass er sehr dynamisch ist und bei jeder Bildgröße funktioniert … ohne CSS Hacks leider nur im Firefox, was zu erwarten war :(&lt;/p&gt;
&lt;p&gt;Eine Demo könnt ihr euch herunterladen: &lt;a href="http://data.mysedcard.tv/blog/20090403/mask-image-with-rounded-corners.zip"&gt;mask-image-with-rounded-corners.zip&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Das faken der Ecken kann man auch zur Laufzeit erledigen und nicht per Javascript, um den Ecken-Fake nicht erst nach vollständigem Laden der Webseite zu haben.  Ein weiterer Ansatz ist, dass man über das Bild eine transparente Maske legt. Das funktioniert aber nur, wenn die Bilder eine feste Größe haben, z.B. bei quadratischen Bildern, wie es bei mysedcard großteils der Fall ist. Der Ansatz ist erstmal etwas komplizierter, funktioniert aber unterm Strich dann überall, außer im IE6 und kleiner.  Wir nehmen ein Bild und betten dies in span-Tags ein:&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://pastie.org/435780.js"&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;Der Sprite, der hier verwendet wird beinhaltet die verschiedenen Masken für eine Hintergrundfarbe  &lt;img src="http://data.mysedcard.tv/blog/20090403/rounded-corners-sprite-white.jpg" alt="rounded corner sprite"/&gt; Der Span wird somit einfach über das eigentliche Bild gelegt und entsprechende positioniert.&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://pastie.org/435781.js"&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;Das reicht, um eine Maskengröße korrekt zu positionieren. Das Beispiel kann um beliebige Formate erweitert werden. Der interessierte Leser schaut sich das Ganze am besten mit Firebug bei &lt;a href="http://www.mysedcard.tv/"&gt;mysedcard.tv&lt;/a&gt; an.  Bei mysedcard kommt eine Kombination der beiden Lösungen zum Einsatz. Für die quadratischen Bilder wird die Masken-Lösung verwendet. Es gibt aber auch dynamische Größen. Hier kommt Lösung 1 zum Einsatz. Die Positionierung für Internet Explorer wird mittels Hacks erledigt. Der Aufwand hält sich in Grenzen, da diese Lösung nur an einer Stelle zum Einsatz kommt.  Durch die Umstellung der Bilder wurde der Traffic ungefähr um den Faktor 5-10 reduziert. Der Speicherbedarf der Bilder natürlich in gleichem Maße. Die Neu-Generierung der Bilder war mit Paperclip auch sehr einfach zu machen, hat lediglich etwas Zeit in Anspruch genommen. Das wurde in einer Nacht und Nebel Aktion erledigt, könnte bei genauerer Planung und etwas Code-Anpassungen auch während dem Tagesbetrieb erledigt werden.  Ich hoffe, dass ich vielleicht dem ein oder anderen weiterhelfen konnte. Kommentare, Anregungen und sonstiges sind natürlich gern gesehen :)&lt;/p&gt;</description><link>http://tech.blog.mysedcard.tv/post/92534644</link><guid>http://tech.blog.mysedcard.tv/post/92534644</guid><pubDate>Fri, 03 Apr 2009 06:16:38 -0400</pubDate><category>mysedcard</category><category>mysedcard.tv</category><category>fake</category><category>corners</category><category>rounded</category><category>paperclip</category></item><item><title>mysedcard.tv ist online</title><description>&lt;p&gt;Hallo mysedcard.tv-Fans, Rails Interessierte und natürlich auch alle Anderen,&lt;/p&gt;
&lt;p&gt;leider etwas verspätet, aber besser spät als nie, beginnen wir, &lt;a href="http://www.mysedcard.tv/" target="_self"&gt;mysedcard.tv&lt;/a&gt;, in Person ich, Stefan Botzenhart, über den technischen Fortschritt unter der Haube von mysedcard.tv zu berichten.&lt;/p&gt;
&lt;p&gt;Dieser erste Beitrag soll einen groben Überblick des bisher Geschehenen geben.  Begonnnen habe ich mit der Entwicklung von mysedcard am 14.12.2008 mit einem schnöden “git init” und der klaren Vorstellung, wohin die Reise gehen soll. Zusammen mit meinen Mitstreitern Kai und Sebastian hatten wir bereits im April 2008 mit einer einem HTML Dummy zu Präsentationszwecken begonnen und damit das grafische Konzept von mysedcard umgesetzt. Damit konnten die beiden schon mal arbeiten und auf Partnersuche gehen.  Die Weihnachtstage 2008 sowie Sylvester waren geprägt von “wtf” und “warum zur Hölle funktioniert das nicht so, wie ich will”.&lt;/p&gt;
&lt;p&gt;Am 10. Januar 2009 war das Portal bereits in einem Alpha Stadium angekommen - also nur knapp 20 Tage, einem Vollbart, viel RedBull, Re-Load, Kaffee, wenig Schlaf und der Erkenntnis, dass man von vielem Tippen auch eine Sehnenscheidenentzündung bekommen kann, später.  In der Alpha Version war eigentlich das Meiste von dem, was aktuell auf dem Portal zu sehen ist, verfügbar. Browserkompatibilität war zu diesem Zeitpunk noch völlige Fehlanzeige. Ich wollte auch nicht sehen, was meine Freunde IE 6 und 7 aus dem HTML machen würden…&lt;/p&gt;
&lt;p&gt;In den nächsten Wochen wurden dann die Anforderungen nochmal ein wenig abgespeckt, um den Release Termin 14. März halten zu können. Dieser konnte ja auch nicht verschoben werden, da der Cocoon Club bereits fest gebucht war. Ansonsten musste das Portal (relativ) browserfest gemacht werden und der allseits beliebte Feinschliff fehlte noch.&lt;/p&gt;
&lt;p&gt;Am Tag X angekommen konnte ich aber doch an alle Release Features einen Haken setzen und einem mehr oder weniger entspannten Abend im Cocoon Club entgegenschauen. Die Veranstaltung war ein voller Erfolg! Mehr dazu kann man unter &lt;a href="http://www.mysedcard.tv/news/offizieller-startschuss-mysedcardtv-cocoon-club-frankfurt"&gt;http://www.mysedcard.tv/news/offizieller-startschuss-mysedcardtv-cocoon-club-frankfurt&lt;/a&gt; nachlesen. Das vor Ort gedrehte Video und ein ausführlicher Bericht folgt in den nächsten Tagen.&lt;/p&gt;
&lt;p&gt;Nun aber nochmal zurück zum Technischen. Mysedcard läuft auf einem gut ausgestatteten Athlon X64 mit 8GB Ram. Aktuell fahren wir noch ein Rails 2.2.1, die Umstellung auf Rails 2.3 ist aber bereits in Arbeit und wird hoffentlich bald möglich sein. Ansonsten setzen wir auf Phusion Passenger, gängige Gems und Plugins und einem Mysql Server. Zwei erwähnenswerte, weil vielleicht nicht ganz übliche Gems oder Plugins möchte ich an dieser Stelle dennoch nennen:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://github.com/binarylogic/searchlogic/" target="_self"&gt;searchlogic&lt;/a&gt; vereinfacht eine Suche und den ganzen Klimm-Bimm darum um Welten&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/norman/friendly_id/" target="_self"&gt;friendly_id&lt;/a&gt; stellt suchmaschinen- und menschenfreundliche URLs für (Rails-)Models bereit&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Ansonsten setzen wir noch auf &lt;a title="Lighthouse Issue Tracking" href="http://www.lighthouseapp.com" target="_self"&gt;Lighthouse&lt;/a&gt; für unser internes Bug und Issuetracking, &lt;a href="http://www.newrelic.com/" target="_self"&gt;NewRelic&lt;/a&gt; zur Performance Messung der Applikation und &lt;a href="http://www.hoptoadapp.com" target="_self"&gt;Hoptoad&lt;/a&gt; zur Aggregierung von Fehlerreports. Alle Tools kann ich nur jedem ans Herz legen, v.a. Hoptoad hat es mir enorm erleichtert, die initiale Flut von Fehleremails zu überschauen und allen Fehlern auf die Schliche zu kommen.&lt;/p&gt;
&lt;p&gt;Somit sind wir am Ende des ersten - nicht ganz so technischen - Blog-Beitrags angekommen. In den nächsten Beiträgen werde ich unter anderem auf die Problematik eingehen, warum sich mysedcard so träge anfühlt und wie das Problem gelöst wird, die Umstellung auf Rails 2.3 dokumentieren und neue Features von mysedcard vorstellen.&lt;/p&gt;
&lt;p&gt;Grüße Euer Stefan&lt;/p&gt;</description><link>http://tech.blog.mysedcard.tv/post/92536839</link><guid>http://tech.blog.mysedcard.tv/post/92536839</guid><pubDate>Tue, 24 Mar 2009 06:00:00 -0400</pubDate><category>mysedcard</category><category>mysedcard.tv</category><category>online</category><category>ruby</category><category>rails</category><category>cocoon</category></item></channel></rss>
