Jag måste bara tipsa om Wolfram Alpha (http://www.wolframalpha.com/) -  nästa generations sökmotor. Den påminner om såna där superdatorer som brukar finnas med i sköna 80-tals filmer och kan svara på vilken fråga som helst. Den tas i drift nån gång nu i maj och det ska bli mycket spännande att se hur den fungerar. Följ utvecklingen på http://blog.wolframalpha.com/

Currently rated 2.7 by 3 people

  • Currently 2.666667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Stack overflow är min nya favoritsida, det finns många duktiga programmerare där att inspireras av. För några dagar sen skrev någon om Syndication Feed klassen i en tråd och jag tyckte den såg smidig ut och bestämde mig för att göra en ny startsida m.h.a den, (min gamla finns här). Samtidigt har jag sneglat en hel del på JSON senaste tiden så jag slog två flugor i en smäll.
Jag hittade ett bra json exempel här som jag modifierade lite. Resultatet blev en betydligt snabbare sida än min gamla och kanske 75% mindre kod. Plockade ut det viktigaste ur koden som man kan se nedan om någon vill göra en egen variant.

//---------------Javascript----------------------
function getDN() {
 Param = new Array();Param.push("url");
 Param.push("http://www.dn.se/m/rss/senaste-nytt");Param.push(
"takeItems");
 Param.push(10);
 $(
"#dn").append("<h2>DAGENS NYHETER</h2>");
 PageMethod('ReadRss', Param, "#dn");
}

function
PageMethod(fn, paramArray, div) {
  var pagePath = window.location.pathname;
 
var paramList = '';
if (paramArray.length > 0) {
    for (var i = 0; i < paramArray.length; i += 2) {
       if (paramList.length > 0) paramList += ',';paramList +=
'"' + paramArray[i] + '":"' + paramArray[i + 1] + '"';
     }
}
 paramList =
'{' + paramList + '}';
$.ajax({
 type:
"POST",
 url: pagePath + "/" + fn,
 contentType:
"application/json; charset=utf-8",
 data: paramList,
 dataType:
"json",
 success: function(response) {
 
var rssItems = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
 for (var i = 0; i < rssItems.length; i++) {$(div).append(
 
"<a href='" + rssItems[i].link + "' target='_blank' alt='" + rssItems[i].title + "'><h3>" + rssItems[i].title + "</h3></a>");
 
if (rssItems[i].content != null) {$(div).append("<span class='published'>[" + rssItems[i].published + "]</span>");$(div).append("<p>" + rssItems[i].content +"</p>"); }
}
},
 
error: function(msg) { $(div).append(msg); }
});

}

//-------------------Codebehind C#---------------------------------------------

[WebMethod]
public static List<RSSItem> ReadRss(string url, int takeItems)
{
  
List<RSSItem> rssItems = new List<RSSItem>();
try
{
 
var feed = XmlReader.Create(url);
 
var feedItems = SyndicationFeed.Load(feed).GetRss20Formatter().Feed.Items;
  if (takeItems > feedItems.Count())
       
takeItems = feedItems.Count();
 
var returnItems = (from feedItem in feedItems
                           
select feedItem).Take(takeItems);

foreach (var item in returnItems)
{
 
RSSItem rssItem = new RSSItem();
try
{
  rssItem.title = item.Title.Text;
  rssItem.link = item.Id;
  rssItem.published = item.PublishDate.ToString(
"HH:mm yyyy-MM-dd");
  rssItem.content = item.Summary.Text;
  rssItems.Add(rssItem);
}
catch (Exception ex2)
{
  rssItems.Add(rssItem);
}
}
}
catch (Exception ex)
{
RSSItem errorItem = new RSSItem { title = ex.Message };
rssItems.Add(errorItem);
}
return rssItems;

}

Currently rated 3.0 by 5 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5