I have been thinking of this concept myself for a admin system I am developing. I think that a rss feed would be very handy but havn't been able to figure out how to make it private. Think I read somewhere about a way to put password on a feed, but some of the big rss readers does not support it yet (for example Google Reader).
One of the commenters to Ayende's post gave me a tip worth checking out. Unfortunatly it only works in Outlook / IE.
If you want to make RSS feeds private the easiest way (that works with Outlook at least) is to enable HTTP Basic Authentication and visit the RSS feed with IE to input credentials and check the option to save them. Then Outlook will transparently use those credentials to update the feed.
Okej har inte så mycket att säga om sajten rssHugger ännu eftersom jag just registrerade min blogg.Det handlar om en tjänst som man kan promota sin blogg på, så mycket har jag förstått.
De har i alla fall en smart registreringsprocess måste jag säga. När man kommer till steget där man ska lägga till sin blogg så har man två alternativ. Antingen betalar man 20 dollars eller så skriver man en recension. Jag valde det senare alternativet...
Startade upp Readern när jag skulle prenumenera på ett nytt RSS-flöde och märkte med en gång att något hade förnyats. Ajax-indikationen som visar att något laddas var annolunda med gul bakgrund.
Sen såg jag den viktigast nyheten i denna uppdatering, ett sökfält längst uppe till höger!
Nu tänkte jag visa ett snarlikt exempel men här skriver vi flödet direkt till Response-strömmen istället för att skapa en fysisk fil. Kallar denna metoden, att leverera ett RSS-flöde "virtuellt", i brist på bättre term.
Hämtade lite inspiration från Dileno.com men använde istället min egen kod från tidigare exempel.
Själva ASPX-filen sparar jag som Rss.aspx och innehåller endast en rad kod.
I koden bakom hämtas posterna ur en tabell i en Access-databas. Bygger ihop en sträng med xml taggarna för RSS-definitionen och lägger sedan in den i cache. Detta för att det inte ska bli överbelastning ifall flödet anropas ofta.
using System; using System.Data; using System.Data.OleDb; using System.Configuration; using System.Text; using System.Web; using System.IO; using System.Xml;
public partial class _Rss : System.Web.UI.Page { static string strConn = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; static string strRootUrl = "http://codeodyssey.se";
//Kollar om det redan finns en sträng i cache, annars skapas en ny protected string GetRssString() { string cacheName = "rss-feed";
//Hämta chachad data om det finns if (Cache[cacheName] != null) { return Convert.ToString(Cache[cacheName]); } else { string newlyGeneratedRss = GenerateRss(); Cache.Insert(cacheName, newlyGeneratedRss, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero); return Convert.ToString(newlyGeneratedRss); } }
//Funktion som skapar en textSträng som innehåller rss-feed protected string GenerateRss() { StringWriter sw = new StringWriter(); try {
XmlTextWriter xtw = new XmlTextWriter(sw);//,System.Text.Encoding.GetEncoding("UTF-8") xtw.Formatting = Formatting.Indented; xtw.WriteStartDocument();
//skriv ut <rss version="2.0"> xtw.WriteStartElement("rss"); xtw.WriteAttributeString("version","2.0");
//skriv ut <channel> xtw.WriteStartElement("channel");
//skriv ut element som tillhör <channel> xtw.WriteElementString("title","Codeodyssey.se"); xtw.WriteElementString("link","http://www.codeodyssey.se/"); xtw.WriteElementString("description","Code Odyssey - gräver djupt i kodträsket"); xtw.WriteElementString("language","sv-SE"); xtw.WriteElementString("copyright","Copyright (c) 2004-2007 Code Odyssey");
OleDbConnection conn = new OleDbConnection (strConn); bool boolPermission = false; OleDbDataReader objDataReader=null; try { string strSQL = "SELECT TOP 10 * FROM News WHERE Published=true ORDER BY PublishDate DESC";
conn.Open();
OleDbCommand objCommand = new OleDbCommand(strSQL, conn); objDataReader = objCommand.ExecuteReader(); while (objDataReader.Read() == true) { int Id = Convert.ToInt32(objDataReader["Id"]); string Title = Convert.ToString(objDataReader["Title"]); string Body= Convert.ToString(objDataReader["Body"]); //Se till att datum följer RFC-822 standard string PublishDate = Convert.ToString( ((DateTime)objDataReader["PublishDate "]).ToString("r"));
När man tillhandahåller ett CMS-system åt en kund så är det nästan oundvikligt att kunderna kommer att skriva in ogiltig XHTML. Alla kan helt enkelt inte vara webbstandard-freaks och det är inget man kan kräva av någon.
Då skulle det vara perfekt om man kunde få en varning så fort ogiltig kod har publiserats, så man kan gå in och rätta till den.
Blitz Labs har gjort en sådan lösning och delar med sig av .NET-koden. Funktionen tar emot en url som ska kontrolleras. Skickar ett anrop till W3C Markup Validation Service. Tar emot resultatet genom deras SOAP-tjänst och transformerar det till RSS med hjälp av en XSLT-fil.
Prenumenera sedan på den RSS som skapats och få meddelande så fort någon ogiltig kod har publiserats.
Hittade en intressant artikel av Steve Clements där han visar hur man kan bygga en RSS-läsare för att lägga in på en webbplats. Den använder AJAX-funktioner för att öppna inläggen när man läser dem. Till kodexemplet används ett speciellt RSS Toolkit som finns att läsa om på Dmitrys blog. Där finns även en zip-fil med verktygslådan att ladda hem.
Har inte testat den själv men det verkar intressant, skriv gärna en kommentar ifall du provar på detta. Är jättenyfiken på hur det fungerar.
Flex är ett häftigt koncept som förenklar utvecklandet av flash-applikationer. Om du vill se vad det hela handlar om innan du införskaffar programmet så finns det en kompilerare att testa på nätet.
Börja från schratch och skriv in MXML- och ActionScript-kod, eller utgå från de färdiga exemplen. När du är klar finns en knapp som mailar den färdiga swf- och mxml-filen till valfri email.
Här under kan ni se en RSS-läsare som jag gjorde. Observera att det inte går att skriva in vilken RSS-som helst på grund av säkerhetsinställningarna i flash-spelaren. För att kunna komma åt filer på andra domäner behöver man ställa in domänsäkerheten.
Tjänsten EvilRSS feed låter dig prenumenera på valfria sökfraser via RSS och få resultaten så fort de förändras. Skaparna av tjänsten har gjort den som en protest mot att Google skrotade sin egen SOAP Search API, och lämnade många utvecklare strandsatta som hade satsat på tekniken.
Utvecklarna utfärdar dock en varning att metoden kan vara emot Googles riktlinjer (eftersom den skrapar sajterna på innehåll) och rekommenderas att användas varsamt och endast i testsyften.
Jag söker ibland efter innehåll från min egen webbplats på Google för att se om någon använder material från min webbplats. Nyligen tycker jag mig ha sett en ganska kraftig ökning av sidor som snor innehåll och publicerar det på spam-sajter.
Just nu finns det bland annat några sökresultat med Poker-relaterade rubriker i Googles cache-sidor som har snyltat på mitt innehåll. Själva sidorna finns dock inte längre kvar.
En sida med titeln "Feed FeedBurner On Google" finns dock i skrivandes stund fortfarande uppe på nätet och använder sig av lite innehåll från min webbplats.
När jag först hittade länken blev jag nästan lite glad eftersom, sidans titel antyder på att den använder RSS-flöden, vilket dock visade sig vara felaktigt. Den har helt enkelt återanvänt SERPs från Google eller på annat sätt skannat min webbplats.
Jag väntar nämligen på att någon ska använda mitt RSS-flöde i spammningssyfte, så att jag får ett skäl att gå till motattack. Den metod som jag då tänker prova är att förgifta RSS-flödet ungefär som ha.ckers.org gjorde.