Themen
 
Individuelles Webdesign
 
13.08.2007 05:25

RSS-Feed mit HTML formatieren

Kategorie: Typo3, HTML/CSS, Tutorial, XML, XSL, XSLT, News-Feed, RSS
RSS ist dafür da um von RSS-Readern gelesen und aufbereitet zu werden. Dementsprechend unlesbar sehen RSS-Feeds auch aus, wenn ein Benutzer sich ohne entsprechendem Plugin oder Software auf den Feed verirrt. XSLT kann helfen RSS-Feeds auch für Menschen leicht lesbar zu machen.

RSS, ein standardisiertes Format zur Verbreitung von Nachrichten, ist dafür da um von RSS-Readern gelesen und aufbereitet zu werden. Dementsprechend unlesbar sehen RSS-Feeds auch aus, wenn ein Benutzer sich ohne entsprechendem Plugin oder Software auf den Feed verirrt. XSLT, eine Teilfunktion der Extensible Stylesheet Language zur Transformtion von XML, kann helfen RSS-Feeds auch für Menschen leicht lesbar zu machen.

Das XML eines RSS-Feeds beinhaltet keinerlei Informationen wie der Feed dargestellt werden soll, sondern nur strukturierte Daten.

Dementsprechend verwirrend kann es für einen Benutzer sein, wenn er sich irrtümlich auf einen RSS-Feed „verirrt“ keine Plugins zur Aufbereitung der Feeds installiert hat und auch sonst nicht mit RSS vertraut ist.

Ein unformatierter RSS2-Feed sieht im Browser ungefähr so aus:

 RSS-Feed ohne Transformation

 

Der Screenshot wurde auf Basis dieses Beispiel-Feeds erstellt. Wer keine Software für das Handling des Feeds installiert hat wird ein ähnliches Ergebnis bekommen wie im Screenshot. Für einen User also nicht gerade einladend. Natürlich kann man dem entgegenhalten, dass RSS-Feeds an sich dafür gedacht sind von Software gelesen und formatiert zu werden, nicht von Menschen. Aber nicht jeder User hat entsprechende Software installiert oder ist mit RSS vertraut.

Unformatierte RSS Feeds haben also folgende Nachteile:

  • Nur schwer lesbar

  • Keine Möglichkeit einen Link zu einem Artikel per Mouse-Klick zu öffnen

  • Corporate Design wird unterbrochen und die Website sieht für einen nicht mit RSS vertrauten Besucher „fehlerhaft“ aus.

RSS-Feeds müssen aber nicht so aussehen. Ein Beispiel für einen formatierten und aufbereiteten Feed ist der RSS2-Feed von Typo3.org. Dies wird mit XSL Transformations (XSLT) erreicht. XSLT ist eine Programmiersprache zur Transformation von XML-Dokumenten. Es baut auf der logischen Sturktur eines XML-Dokumentes auf und erlaubt die Definition von Umwandlungs-Regeln.

Grundsätzlich hat ein RSS2-Feed folgende Struktur:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="beispiel-rss-2-html.xsl" media="screen" ?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Feed-Titel</title>
<link>www.meine-seite.net</link>
<description>Beschreibung des Feeds</description>
<language>de</language>
<image>
<title>Feed-Titel</title>
<url>http://www.meine-seite.net/mein-feed-icon.gif</url>
<link>www.meine-seite.net</link>
<width>254</width>
<height>39</height>
<description>Beschreibung des Feeds</description>
</image>
<lastBuildDate>Zeitpunkt des letzten Updates</lastBuildDate>
<item>
<title>Titel des Artikels</title>
<link>Link zum Artikel</link>
<description>Artikel-Teaser (Zusammenfassung)</description>
<content:encoded>Artikel-Text</content:encoded>
<category>Artikel-Keyword</category>
<category>Artikel-Keyword</category>
<author>Autor</author>
<pubDate>Erstellungsdatum des Artikels</pubDate>
</item>
</channel>
</rss>

Eine Beschreibung der Elemente von RSS2-Feeds ist hier zu finden: http://www.rssboard.org/rss-specification.

Diese Struktur gilt es per XSLT so zu transformieren, dass aus dem XML leicht lesbares, formatiertes HTML wird.

Aus XML wird HTML

Mit XSLT ist es möglich Regeln zu definieren, die den XML-basierenden RSS-Feed mit HTML-Tags aufbereiten. Die meisten modernen Browser verfügen über einen integrierten XSLT-Prozessor. Die Beispiele in dem Artikel beziehen sich auf RSS2, können aber nach geringfügiger Anpassung für andere Feed-Strukturen verwendet werden.

Grundsätzlich passiert bei der Transformation folgendes:

  1. Der Browser bekommt vom Server den RSS-Feed
  2. Anhand der im Feed angeführten XSL-Datei wird der Feed transformiert (in diesem Fall mit HTML-Tags formatiert)
  3. Der formatierte Feed wird im Browser lesbar dargestellt.

XSL-File in den RSS-Feed einbinden

Damit der Browser weiss, welche Transformations-Regeln er anwenden muss, muss das XSL-File in den RSS2-Feed eingebunden werden. Die zweite Zeile verweist auf die Datei mit den Transformations-Regeln:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="beispiel-rss-2-html.xsl" media="screen" ?>

Um dies in Typo3 zu erreichen ist es am einfachsten das tt_news template für die RSS-Feeds entsprechend anzupassen.

Mehr ist am RSS-Feed selbst nicht zu ändern. Alle Regeln für die Aufbereitung und Formatierung des Feeds stehen im XSL-File, das in diesem Beispiel beispiel-rss-2-html.xsl heisst.

Transformationsregeln im XSL-File

Mit XSLT sieht der Beispiel-RSS-Feed schon aufgeräumter auf:

 

Die Formatierung des Feeds wurde mit folgender Transformation erreicht (Erklärung weiter unten):

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<xsl:template match="rss">
<html>
<!-- ===Template des HTML-Head-Parts=== -->
<head>
<title>
<xsl:value-of select="/rss/channel/title"/>
</title>
<!-- ===Stylesheet einbinden. Gegebenenfalls muss absoluter Pfad verwendet werden === -->
<link rel="stylesheet" href="rss-xsl-styles.css"/>
</head>
<!-- ===Template des HTML-body-Parts=== -->
<body>
<div class="full-feed">
<!-- Hier werden die anderen Templates hinein genierert. Siehe weiter unten -->
<xsl:apply-templates/>
</div>
</body>
</html>
</xsl:template>

<!-- ===TEMPLATE FUER DAS CHANNEL-ELEMENT -->

<xsl:template match="channel">
<div id="header">
<h1>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="link" />
</xsl:attribute>
<xsl:element name="img">
<xsl:attribute name="src">
<xsl:value-of select="image/url"/>
</xsl:attribute>
<xsl:attribute name="alt">
<xsl:value-of select="title"/>
</xsl:attribute>
</xsl:element>
</xsl:element>
</h1>
<p><strong>Dies ist ein per XSL in HTML transformierter Beispiel-RSS2-Feed. Die Beschreibung wie das geht finden sie <a href="http://www.webkontext.net/">hier</a>. Weitere Artikel von <a href="http://www.webkontext.net/">WEBKONTEXT.net hier</a></strong></p>
<xsl:value-of select="description"/><br />
Letzte &#196;nderung: <xsl:value-of select="substring(pubDate,5,18)"/><br />
</div>

<!-- ===TEMPLATE FUER DIE ITEM-ELEMENTE -->

<xsl:apply-templates select="item"/>
</xsl:template>
<xsl:template match="item">
<div class="feed-item">
<h2>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="link" />

</xsl:attribute>
<xsl:value-of select="title" />
</xsl:element>
</h2>
<p>
<xsl:value-of select="description"/>
<span class="morelink">
&#160;
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="link" />
</xsl:attribute>[mehr...]
</xsl:element>
</span>
</p>
<xsl:if test="pubDate">
<span class="itempubDate">Datum: <xsl:value-of select="substring(pubDate,5,18)"/></span>
</xsl:if>

</div>
</xsl:template>
</xsl:stylesheet>

Das für die Formatierung des RSS-Feeds verwendete XSLT sieht auf den ersten Blick etwas kompliziert aus, allerdings brauchen wir für die Transformation des RSS-Feeds nur einige wenige Regeln. Eine vollständige Beschreibung von XSLT findet sich hier. Auch die Wikipedia bietet einen kurzen Überblick über die XSLT.

Im Wesentlichen brauchen wir für die Transformation von RSS nach HTML nur eine Hand voll Regeln im XSLT:

xsl:template: Das Template wird immer angewendet, wenn der Name eines Elements dem angegebenen entspricht: <xsl:template match="channel"> im XSLT bedeutet also, dass das eingeschlossene Element auf Elemente namens „Channel“ angewendet wird.

xsl:apply-templates: Wendet an dieser Stelle die Templates an. Das Attribut select spezifiziert, welche Elemente verarbeitet werden sollen: <xsl:apply-templates select="item"> bedeutet also, dass an dieser Stelle Item-Elemente eingefügt werden sollen.

xsl:value-of: Fügt an dieser Stelle den Wert des per Attribut select spezifizierten Elements ein. Beispielsweise fügt <xsl:value-of select="/rss/channel/title"/>.den Wert des Elements Title des Elements Channel ein. Da XML als Baum strukturiert ist, kann im select-Attribut der komplette Pfad zu einem Element angegeben werden.

xsl:element und xsl:attribute: Diese setzen bei der Transformation Tags zusammen. Vollständige Tags können auch direkt im XSLT angeführt werden, sobald jedoch Attribute des Tags anhand von Werten im XML gesetzt werden müssen, kommen diese Regeln zur Anwendung.

Diese Zeilen markieren das XML-File als XSLT:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
>

Da ein RSS2-Feed mit einem Element Namens RSS umschlossen ist, wird als erstes ein Template für dieses Element deklariert. Dies geschieht mit

	<xsl:template match="rss">
<html>
<!-- ===Template des HTML-Head-Parts=== -->
<head>
<title>
<xsl:value-of select="/rss/channel/title"/>
</title>
<!-- ===Stylesheet einbinden. Gegebenenfalls muss absoluter Pfad verwendet werden === -->
<link rel="stylesheet" href="rss-xsl-styles.css"/>
</head>
<!-- ===Template des HTML-body-Parts=== -->
<body>
<div class="full-feed">
<!-- Hier werden die anderen Templates hinein genierert. Siehe weiter unten -->
<xsl:apply-templates/>
</div>
</body>
</html>
</xsl:template>

Die innerhalb des Templates angeführten Elemente werden 1:1 ins generierte HTML übertragen, in diesem Fall also das Head und Body.

Das XSLT-Element <xsl:value-of select="/rss/channel/title"/> zwischen den HTML-Title-Tags übernimmt den Wert des RSS-Titels und fügt ihn als HTML-Title ein. Als nächstes wird das externe CSS-File eingebunden.

Im HTML-Body-Element wird ein div, also ein Container, mit der Klasse full-feed generiert. Das <xsl:apply-templates/> innerhalb des body-tags weist den XSLT-Prozessor an dort die Templates für den header und die Items des RSS-Feeds anzuwenden.

	<xsl:template match="channel">
<div id="header">
<h1>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="link" />
</xsl:attribute>
<xsl:element name="img">
<xsl:attribute name="src">
<xsl:value-of select="image/url"/>
</xsl:attribute>
<xsl:attribute name="alt">
<xsl:value-of select="title"/>
</xsl:attribute>
</xsl:element>
</xsl:element>
</h1>
<p><strong>Dies ist ein per XSL in HTML transformierter Beispiel-RSS2-Feed. Die Beschreibung wie das geht finden sie <a href="http://www.webkontext.net/">hier</a>. Weitere Artikel von <a href="http://www.webkontext.net/">WEBKONTEXT.net hier</a></strong></p>
<xsl:value-of select="description"/><br />
Letzte &#196;nderung: <xsl:value-of select="substring(pubDate,5,18)"/><br />
</div>

Dieses Template transformiert den Header, (also Titel, Beschreibung, Logo usw.) des RSS-Feeds. Der Header wird mit einem div mit der Klasse header umschlossen. Der Kopfbereich wird so formatiert, dass in der Überschrift das Logo des Feeds erscheint. Wer dem RSS-Feed kein Icon zugewiesen hat, kann das Element zur Generierung der img-Tags einfach löschen und durch ein <xsl:value-of select="title"/> ersetzen.

Zum Schluss werden noch die einzelnen Artikel-Einträge formatiert. Diese befinden sich im RSS-Feed in Tags mit dem Namen <Item> eingeschlossen. Dafür ist folgender Bereich im XSL-File zuständig:

	<!-- ===TEMPLATE FUER DIE ITEM-ELEMENTE -->

<xsl:apply-templates select="item"/>
</xsl:template>
<xsl:template match="item">
<div class="feed-item">
<h2>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="link" />

</xsl:attribute>
<xsl:value-of select="title" />
</xsl:element>
</h2>
<p>
<xsl:value-of select="description"/>
<span class="morelink">
&#160;
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="link" />
</xsl:attribute>[mehr...]
</xsl:element>
</span>
</p>
<xsl:if test="pubDate">
<span class="itempubDate">Datum: <xsl:value-of select="substring(pubDate,5,18)"/></span>
</xsl:if>

</div>
</xsl:template>

Jeder Artikel-Eintrag wird für die Ausgabe so formatiert, dass er von einem div mit der Klasse feed-Item umschlossen ist. Darin wird der Titel des Artikels als h2-Überschrift formatiert. Weiters wird der Teaser-Text (also die description des Artikel-Items ausgegeben und mit einem Link zum eigentlichen Artikel versehen. Das ist auch einer der wesentlichen Vorteile einer per XSLT-transformierten und HTML-Formatierten Ausgabe eines RSS-Feeds: Die URLs der Artikel werden als Link dargestellt und sind damit auch ohne RSS-Reader leicht öffenbar.





Kommentare


Kommentar schreiben...


Anzeige: 298 - 357 von 357.
 
Sunday, 22. 11 15 22:40
Tonny Tonny
aus K2fwdKb5 jm18ral8j0@hotmail.com    Website   

Why does this have to be the ONLY reilable source? Oh well, gj!

 
Sunday, 22. 11 15 22:34
Sergey Sergey
aus SOGyWmwMc9V 3yrqttsi8@yahoo.com    Website   

Haha, shouldn't you be charging for that kind of kndgelowe?!

 
Sunday, 22. 11 15 22:20
Atif Atif
aus 4WVdYaI1dLpQ q7jpjdf4us@hotmail.com    Website   

It's a real plueasre to find someone who can think like that

 
Sunday, 22. 11 15 21:41
Godfrey Godfrey
aus DYJ2qE1w2t7u kws8mruq6@mail.com    Website   

One evening a trrsdeuntohm blew up together the Tennessee River. it experienced been 1 of individuals moncler lower coat storms that make the evening go black as properly as humidity disappear. 1st it experienced been nevertheless and quiet. there is electrical power inside the fresh air after which it the sharp crispness of Moncler store on-line a summer time evening getting blown broad available because winds rushed in. We threw available all of the doorways and windows. We discovered the classical r / c channel from two low-priced north confront jackets towns apart and turned up the bass and cranked up the speakers. We enable the wind blow in and churn our summer time evening around. We enable the audio we had been only vaguely common moncler lower jacket with roar by means of the house. And we twirled. We twirled inside the residing place inside the wind and inside the music. We twirled and we imagined that people had been poets North confront jackets purchase and dancers and experts and springtime brides.[]

 
Sunday, 22. 11 15 18:51
http://worthythings.com/c http://worthythings.com/cheap-car-insurance-geneva-airport.html
aus yh5Ed3WeEm3K gf7sdcw9uy1@hotmail.com    Website   

You got to push it-this essential info that is!

 
Saturday, 21. 11 15 13:39
http://hrsmemphis.com/can http://hrsmemphis.com/can-you-lie-about-your-job-on-car-insurance.html
aus iPqec4BLX y2g6a8of5t@yahoo.com    Website   

That's a nicely made answer to a challenging question

 
Friday, 20. 11 15 15:44
http://pauls-a-rosa-farm. http://pauls-a-rosa-farm.com/quotes-for-car-insurance-for-17-year-old.html
aus V97doVtLQ s36ko7kv@yahoo.com    Website   

Your story was really informative, thanks!

 
Friday, 20. 11 15 15:13
http://fitnessfactorytrai http://fitnessfactorytrainingfacility.com/proof-of-auto-insurance.html
aus 4jKKG4k6BUwz 6i12kimt@hotmail.com    Website   

Wow, this is in every respect what I needed to know.

 
Friday, 20. 11 15 06:24
http://mrgigstudios.com/p http://mrgigstudios.com/phone-numbers-for-car-insurance.html
aus AA3rwwPHcSq qolxd5vhe4p@outlook.com    Website   

That insight's just what I've been looking for. Thanks!

 
Thursday, 19. 11 15 20:31
http://mrgigstudios.com/c http://mrgigstudios.com/cheaper-car-insurance-for-young-drivers.html
aus u7AmTURzc3s mdu4qkl0@outlook.com    Website   

Deep thinking - adds a new dimension to it all.

 
Thursday, 19. 11 15 07:51
http://motocrosscontent.c http://motocrosscontent.com/royal-military-college-mba.html
aus ZVd20dRIX14X u76ojk2zwlg@mail.com    Website   

Appreciation for this information is over 9000-thank you!

 
Wednesday, 18. 11 15 10:46
http://sravnikasko.org/ot http://sravnikasko.org/otzyvy-o-kasko-v-reso.html
aus 0d8XjOx6h cc5zpit5c6e@gmail.com    Website   

One or two to remember, that is.

 
Wednesday, 18. 11 15 07:55
http://glavkasko.info/rem http://glavkasko.info/remont-po-kasko-tsjurih.html
aus XzthH2H2dTOR wkjt43z23@hotmail.com    Website   

IMHO you've got the right answer!

 
Monday, 16. 11 15 06:47
http://carinsurmarket.com http://carinsurmarket.com/insurance-table-ratings.html
aus N6DaLidOyddv 0twlri3j1@hotmail.com    Website   

That's a genuinely impressive answer.

 
Saturday, 14. 11 15 20:30
http://bossave.com/photog http://bossave.com/photography-courses-la-crosse-wi.html
aus Lq8T84dW9Nl 5m1b3i6rds@mail.com    Website   

With all these silly websites, such a great page keeps my internet hope alive.

 
Friday, 13. 11 15 12:59
http://v-techcom.com/mexi http://v-techcom.com/mexican-rental-car-insurance.html
aus qHVZQKQuFByi 6g67cxiogy@mail.com    Website   

I am totally wowed and prepared to take the next step now.

 
Wednesday, 11. 11 15 15:23
GA auto insurance quotes GA auto insurance quotes
aus KWMr7hEn 39ph5rnm@gmail.com    Website   

Unbelievable how well-written and informative this was.

 
Wednesday, 11. 11 15 06:16
CA car insurance quotes o CA car insurance quotes online
aus 0blQumMBJi n5m8n07sf@mail.com    Website   

Great article but it didn't have everything-I didn't find the kitchen sink!

 
Tuesday, 10. 11 15 12:24
auto insurance auto insurance
aus SN5jSctTa v1l7g68s@yahoo.com    Website   

You've got it in one. Couldn't have put it better.

 
Tuesday, 10. 11 15 04:49
insurance auto insurance auto
aus uIsv6lEYrfb3 nf6pd68bk@outlook.com    Website   

Thanks for being on point and on target!

 
Monday, 09. 11 15 18:34
http://isaacson-mud.org/s http://isaacson-mud.org/state-bank-of-india-accident-insurance.html
aus uQ6tPYdPjIvq nugz0p9rufy@hotmail.com    Website   

I really appreciate free, succinct, reliable data like this.

 
Saturday, 07. 11 15 18:40
http://rezaissmall.com/en http://rezaissmall.com/english-for-academic-purposes-courses-online.html
aus xAFWIB13 ubpmx30z@yahoo.com    Website   

Thanks for sharing. Your post is a useful contribution.

 
Friday, 06. 11 15 05:41
http://creativewebseo.com http://creativewebseo.com/cheapest-car-insurance-college-students.html
aus jcgpWqXz miavoxz4zd@gmail.com    Website   

I was so confused about what to buy, but this makes it understandable.

 
Thursday, 05. 11 15 16:26
http://loisseco.com/affor http://loisseco.com/affordable-car-insurance-michigan.html
aus JOtWQjVldR ueufvq2ym6n@gmail.com    Website   

The honesty of your posting is there for all to see

 
Tuesday, 03. 11 15 22:10
http://creativewebseo.com http://creativewebseo.com/cheap-auto-insurance-orange-tx.html
aus PAoGuxqTvDY 9mgrvyzlen@mail.com    Website   

Ah yes, nicely put, everyone.

 
Tuesday, 03. 11 15 17:35
http://artisticwebsitecre http://artisticwebsitecreations.com/a-m-best-car-insurance-ratings.html
aus BSH5a9DTT2OB c92gyzgnth@gmail.com    Website   

Articles like these put the consumer in the driver seat-very important.

 
Monday, 02. 11 15 23:21
http://miamifishbar.com/c http://miamifishbar.com/cheap-auto-insurance-kitchener-waterloo.html
aus nLvaqkXH2r9Z 1zgmbx5t6c@yahoo.com    Website   

If my problem was a Death Star, this article is a photon torpedo.

 
Sunday, 01. 11 15 08:47
http://loonnetwork.org/ca http://loonnetwork.org/car-insurance-for-young-drivers-usa.html
aus eb2IVyGy8WhW 30sbajor42@outlook.com    Website   

Ab fab my goodly man.

 
Saturday, 31. 10 15 08:06
http://carinsurancequotes http://carinsurancequoteson8.info/cheapcarinsurancevirginiabeachva.html
aus OtUqoSjgB 6t3ks0xgfp@yahoo.com    Website   

Yo, good lookin out! Gonna make it work now.

 
Saturday, 31. 10 15 05:12
http://mobilegamepartypr. http://mobilegamepartypr.com/car-insurance-estimate.html
aus VRrJ6dXe4J 46qystq5f@yahoo.com    Website   

Always a good job right here. Keep rolling on through.

 
Thursday, 29. 10 15 04:34
http://carinsurancequotes http://carinsurancequoteson8.info/usaaclassiccarinsurancequote.html
aus a08S9ou1SjD zwxskghi58@gmail.com    Website   

The expertise shines through. Thanks for taking the time to answer.

 
Wednesday, 28. 10 15 13:19
http://ssgsecuritysupport http://ssgsecuritysupport.com/all-car-insurance-in-florida.html
aus N4Gv4CSPH wafib23e2a@gmail.com    Website   

I found just what I was needed, and it was entertaining!

 
Tuesday, 27. 10 15 08:17
http://scissorsandcloth.c http://scissorsandcloth.com/ieee-auto-insurance.html
aus farFrHPB 5649yphr75g@yahoo.com    Website   

No complaints on this end, simply a good piece.

 
Monday, 26. 10 15 22:20
http://autoinsurancezest. http://autoinsurancezest.top/MA/New-Bedford/cheap-car-insurance/
aus Z6QRQgWf 0q5pm0ecn@mail.com    Website   

Thanks for being on point and on target!

 
Sunday, 25. 10 15 23:28
http://carinsuranceost.in http://carinsuranceost.info/what-is-a-uk-resident-for-car-insurance-purposes.php
aus ZV6QV7EDcs f51nk5p2c6x@hotmail.com    Website   

Wow! Great thinking! JK

 
Sunday, 25. 10 15 06:22
http://chepcarinsurancein http://chepcarinsurancein.info/gatorcarinsuranceflorida.php
aus cDwOPobQg8 43fw520yu70@gmail.com    Website   

Whoever wrote this, you know how to make a good article.

 
Sunday, 25. 10 15 02:32
http://gamecontestsonline http://gamecontestsonline.com/da-general-car-insurance.html
aus xuJPFP0FoHq 9ksakr35v2@gmail.com    Website   

You keep it up now, understand? Really good to know.

 
Saturday, 24. 10 15 02:50
http://fearoffalling.net/ http://fearoffalling.net/the-north-river-insurance-company.html
aus W86oCEPdDT2W cnel2538@gmail.com    Website   

Could you write about Physics so I can pass Science class?

 
Friday, 23. 10 15 11:37
http://paperandoak.com/Ch http://paperandoak.com/Cheap_Car_Insurance_Louisville_Ky.php
aus gk2KerPh a0ncjcxrb@gmail.com    Website   

That hits the target perfectly. Thanks!

 
Thursday, 22. 10 15 23:09
http://www.daveherman.net http://www.daveherman.net/how_does_an_auto_insurance_deductible_work.php
aus Pa14jNFSPqu wj9jwogf8gw@outlook.com    Website   

Your story was really informative, thanks!

 
Wednesday, 21. 10 15 12:34
http://poweryourjourney.c http://poweryourjourney.com/what-is-a-auto-insurance-score.php
aus 1owkrvdVPUkk vatna3ka@yahoo.com    Website   

That's 2 clever by half and 2x2 clever 4 me. Thanks!

 
Wednesday, 21. 10 15 10:45
http://twangnews.com/metl http://twangnews.com/metlife_auto_insurance_claims.php
aus I6V8ZfrLjF 6t5ash415d@yahoo.com    Website   

Thought it wouldn't to give it a shot. I was right.

 
Tuesday, 20. 10 15 04:08
http://autoinsurancerater http://autoinsurancerater.info/cheap_insurance_in_nj_for_new_drivers.html
aus 3fqYUC1VOX 2smocfxemy@yahoo.com    Website   

This site is like a classroom, except I don't hate it. lol

 
Sunday, 18. 10 15 21:20
http://carinsurancequotes http://carinsurancequoteson.info/texasfarmbureaucarinsurance.html
aus ocSDRTjv 2swmpywgyu@outlook.com    Website   

You really found a way to make this whole process easier.

 
Thursday, 15. 10 15 18:21
http://carinsurancenetz.i http://carinsurancenetz.info/cheapinsuranceforcaruk.html
aus 4GBjrrfLddK 91bpjsr2or@outlook.com    Website   

I'm not easily impressed. . . but that's impressing me! :)

 
Thursday, 08. 10 15 02:45
http://www.pizzashacknh.c http://www.pizzashacknh.com/carinsurance4x4.php
aus 9OpeVPkc kijwcupd@mail.com    Website   

Thanks for introducing a little rationality into this debate.

 
Wednesday, 07. 10 15 10:19
http://autoinsuranceonetw http://autoinsuranceonetwo.info/Dillo_Car_Insurance.php
aus HWo91aCuP1bM ilohy1iuh7@gmail.com    Website   

Thanks for writing such an easy-to-understand article on this topic.

 
Monday, 28. 09 15 05:57
http://eduadvisers.info/s http://eduadvisers.info/schoolsforcomputergraphicdesign.php
aus lhPNeY8Ksw oq8lxc0pe@gmail.com    Website   

Now I feel stupid. That's cleared it up for me

 
Sunday, 27. 09 15 10:58
http://carinsurancenets.i http://carinsurancenets.info/state_auto_auto_insurance.php
aus MQreV2GJ0 ikz09y2w@gmail.com    Website   

Your honesty is like a beacon

 
Sunday, 27. 09 15 08:30
http://carinsurancecenti. http://carinsurancecenti.info/autoinsuranceforlapseincoverage.php
aus fWO9N3ED 3vk6g327@mail.com    Website   

And to think I was going to talk to someone in person about this.

 
Sunday, 27. 09 15 04:56
http://eduadvisers.info/p http://eduadvisers.info/practice_college_math_clep_exam.php
aus TQfW3k5e9u 56f35you@yahoo.com    Website   

Thanks for starting the ball rolling with this insight.

 
Sunday, 27. 09 15 02:42
http://autoinsurancedin.i http://autoinsurancedin.info/compare_new_driver_car_insurance.php
aus kgJoDlHkFII4 dwogctdqnp@outlook.com    Website   

You're a real deep thinker. Thanks for sharing.

 
Sunday, 27. 09 15 02:00
http://eduadvisers.info/f http://eduadvisers.info/free-online-courses-stanford.php
aus PWrmfnm6EaV jthov7ona1j@outlook.com    Website   

An answer from an expert! Thanks for contributing.

 
Saturday, 26. 09 15 23:18
http://autoinsurancegeek. http://autoinsurancegeek.info/Second_Chance_Auto_Insurance.php
aus ge9wg6Tj snosjs2l@mail.com    Website   

I've been looking for a post like this for an age

 
Saturday, 26. 09 15 19:45
http://carinsurancenets.i http://carinsurancenets.info/phone-number-aaa-car-insurance.php
aus uUO7NHOA r4zzfat15t@mail.com    Website   

It's really great that people are sharing this information.

 
Saturday, 26. 09 15 17:37
http://autoinsurancedin.i http://autoinsurancedin.info/tesco-car-insurance-discount-code-2014.php
aus pcPTFVy0tf x8b2vmku@mail.com    Website   

The accident of finding this post has brightened my day

 
Saturday, 26. 09 15 10:27
http://autoinsurancegeek. http://autoinsurancegeek.info/How-Much-Insurance-Do-I-Need-For-My-Car.php
aus SHNs1rAt eclkukg1s2@hotmail.com    Website   

This article is a home run, pure and simple!

 
Saturday, 26. 09 15 09:34
http://autoinsurancedin.i http://autoinsurancedin.info/safe-auto-insurance-louisville-ky.php
aus 0ZH3qGviKx tslvfk9802x@mail.com    Website   

You're the greatest! JMHO

 
Friday, 25. 09 15 12:33
http://carinsurancemint.o http://carinsurancemint.org/progressive-auto-insurance-wichita-falls-tx.php
aus 4jDjLGNhag u25fko3fuw@yahoo.com    Website   

Yeah, that's the ticket, sir or ma'am

 
Thursday, 10. 09 15 15:57
Silvio Silvio
aus 4itJNP4q1 f2ghaot0@outlook.com    Website   

With my now having more time to play with it and get facbdeek from several people I am starting to think I need to dive in and figure out exactly what should qualify as a Cloud OS. While Cloudo is cool I think that an OS should be more than glorified online storage.The very first Cloud OS I used a couple years ago was unique in that it has an actuall desktop that booted off of the Internet. There was a limited OS on the computer just enough to get it up and running and hooked up to the internet and then all of your files and programs were installed to the internet.The thing I really hated about that was just how painfully slow everything was. We had a 10 MB connection and it still took forever for it to do things. That is one of the reasons I do like Cloudo is that everything is fast.Between your blog and mine maybe we can give some more deffinition to what exactly Clouds OS's should be.

 
 

Kommentar schreiben