<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>/Dan/.NET - Dan Robey's .NET Dumping Spot : /maniacal</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/category/24.aspx</link><description>/maniacal</description><dc:language>en-US</dc:language><generator>CommunityServer 1.1 (Build: 1.1.0.50615)</generator><item><title>CreateDebate</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2008/04/24/Online_Debating.aspx</link><pubDate>Thu, 24 Apr 2008 22:51:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:67639</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/67639.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=67639</wfw:commentRss><description>I've been helping some friends with a website recently and it's just entered a public beta.&amp;nbsp; &lt;a href="http://www.createdebate.com/"&gt;CreateDebate.com&lt;/a&gt;
is an online debating community that lets users make new open debates
and see what people think about issues.&amp;nbsp; Check it out, it's easy to
create new debates and arguments and check out where everyone stands.&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=67639" width="1" height="1"&gt;</description></item><item><title>XAML layers</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2004/04/26/546.aspx</link><pubDate>Mon, 26 Apr 2004 16:26:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:546</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/546.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=546</wfw:commentRss><description>What have people heard about the new &lt;a href="http://msdn.microsoft.com/Longhorn/understanding/pillars/avalon/default.aspx"&gt;Avalon&lt;/a&gt; / &lt;a href="http://weblogs.asp.net/autocrat/archive/2004/04/05/107488.aspx"&gt;XAML&lt;/a&gt; programming practice MS seems to be pushing?  To me it seems almost parallel to the Java/Javascript division, with new twists thrown in.  What it promises (if it is integrated into IE as I think it will be) is a programming environment in which rich media applications similar to flash can be thrown onto a website and be dynamically loaded into a sandboxed environment on the client side.  If we think about the push to portal systems and the internet as storage space, this is a big step in that direction.  Pieces of software can be loaded and unloaded, taking advantage of web services to provide local/networked actions.  Think of a networked MATLAB where you interact through a local presentation layer while all the number crunching is done by server farms.  In theory, you could make an entire networked operating system using this stuff&lt;br /&gt;&lt;br /&gt;
Dividing presentation and implementation is something we've been trying to do for a long time, but this seems to even more strongly enforce it.  Talk about Macromedia providing a development environment for the presentation layer would make the top layer even slicker, while the implementation is done through "partial classes."  This means not having to learn the strange flash hooks for web services but still being able to integrate rich displays with solid framework.&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=546" width="1" height="1"&gt;</description></item><item><title>dynamic pictures</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2004/04/24/544.aspx</link><pubDate>Sat, 24 Apr 2004 23:14:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:544</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/544.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=544</wfw:commentRss><description>&lt;p&gt;I was thinking about how to get around the limitations some sites have on the http-referer for pictures (mostly webcomics that don't want deep linking of pics), and I came up with an interesting idea. Using the strange qualities of Response.Write() and Response.End(), I made a page which takes as input which picture it should get (does a n-1 tier lookup for the http-referer, other info), and then downloads that picture and serves it to the client.&lt;br /&gt;&lt;br /&gt;Confused? You should be. Since I whipped it up in about ten minutes, the code's not the cleanest, but it'll give the basic idea:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;if("pic".Equals(Request.Params["pic"])) {&lt;br /&gt;System.Net.WebClient wc = new System.Net.WebClient();&lt;br /&gt;wc.Headers.Add("Referer","http://rx7.mit.edu");&lt;br /&gt;string newimage = this.Server.MapPath(".")+"\\pics\\"+System.Guid.NewGuid().ToString();&lt;br /&gt;wc.DownloadFile("http://rx7.mit.edu/help.gif", newimage);&lt;br /&gt;Response.WriteFile(newimage);&lt;br /&gt;Response.End();&lt;br /&gt;System.IO.File.Delete(newimage);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So the image reference looks like &amp;lt;img src=“$page?pic=pic“&amp;gt;, where $page is your web app's address.&lt;br /&gt;Instead of downloading the picture from somewhere, it could be dynamically created, using all of .NET's image manipulation libraries, say, to show the time, or some graphic representation of any data .net handles.  Or do checking before serving an image to see if the user has correct permissions.  Anything your heart desires.&lt;/p&gt;&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=544" width="1" height="1"&gt;</description></item><item><title>dealing with long queries</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/12/04/483.aspx</link><pubDate>Thu, 04 Dec 2003 19:13:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:483</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/483.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=483</wfw:commentRss><description>One of the problems with long web queries is user feedback.  If a SQL command takes seconds or even minutes to complete, or if some other heavy processing must be done, users must wait idly as the status bar creeps along, blindly guessing at how long the response will take.&lt;br /&gt;&lt;br /&gt;
This problem is a general notification problem with web queries which stem from the nature of stateless http client/server protocol.  A possible solution is to place a layer of indirection on anticipated long queries.  Using the web service model, the indirection layer (call it the foyer layer) does the standard query asynchronously, and instead of sending the results, sends a java refresh page, which causes the client to requery the foyer layer every &lt;i&gt;n&lt;/i&gt; seconds.  The foyer layer can hold data about the current query, including what percent is done.  This can be relayed from individual calls, if using SQL can be updated after each SQL statement in the long SQL stored procedure, or previous long calls can be used as an estimation metric.  The data can be used to update a true status bar on the page while serving other information to the client - funny quotes, relevant advertising, customer feedback, etc.&lt;br /&gt;&lt;br /&gt;
The foyer layer can be programmed in any language, and one method which comes to mind would be the recent Shockwave web services, which allow for a stateful client.&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=483" width="1" height="1"&gt;</description></item><item><title>sql injection attacks</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/11/20/478.aspx</link><pubDate>Thu, 20 Nov 2003 19:02:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:478</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/478.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=478</wfw:commentRss><description>While your head is still spinning from the last post, don't think that SQL server is the answer either.  If an adversary knows your SQL server setup, they can find weaknesses in your database calls and do "&lt;a href="http://msdn.microsoft.com/library/en-us/dnnetsec/html/SecNetch12.asp?frame=true#secnetch12_sqlinjectionattacks"&gt;sql server injection attacks&lt;/a&gt;."  Basically, since most SQL programmers assume the strings are nicely encoded already, you can send sql commands as your string, which when using function calls like &lt;br /&gt;"SELECT blah FROM blah WHERE blah=$input"&lt;br /&gt; the attacker can send back inputs like &lt;br /&gt;"' ; INSERT INTO adminusers 'Dan Robey'"&lt;br /&gt;If crafted properly (my strings are just examples and won't work), these inputs will end the current query and instead do the "evil" query.  This is one reason why everyone using SQL should disable that convenient little "xp_cmdshell" system call in their SQL server.  Otherwise some hacker can just send "' ; xp_cmdshell("format c:")" or something equally nasty.&lt;br /&gt;&lt;br /&gt;Hope after reading this you all feel safe and secure with the way your system is setup!&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=478" width="1" height="1"&gt;</description></item><item><title>security issues with xmlportal</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/11/20/477.aspx</link><pubDate>Thu, 20 Nov 2003 18:51:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:477</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/477.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=477</wfw:commentRss><description>I just realized that since our xml data files have to be set ASPNETuser readable, if an adversary knew their location, he could read all the data, including users and passwords.  I'm not sure how much is needed, but here are some possible solutions depending on the security desired:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;If we want to protect all the information, we can symmetrically encrypt the file with some machine dependent salt plus extra passphrase.  On the first serialization call we need to decrypt, which might take about half a second. Weakness: if the salt algorithm is known, and machine dependent secrets are known, the key can be found by looking through the code.&lt;/li&gt;
&lt;li&gt;If we are just worried about the user passwords, we can take the standard approach of storing not the password but the SHA1 of the password plus some salt.  More secure, but has dictionary attacks.&lt;/li&gt;
&lt;li&gt;In addition, we can give the XML file permissions such that only users requesting from the local machine can get it.  This makes data theft harder, since adversaries would have to spoof their origin IP addresses, especially hard if the server is using NAT.&lt;/li&gt;
&lt;/ul&gt;
I'm going to have to think about the problem a little more before coming up with a good way of doing this.  I'll definitely implement the SHA1 though.
&lt;br /&gt;&lt;br /&gt;Some decent references I came across were this &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/SecNetHT03.asp"&gt;msdn article&lt;/a&gt; on "building ASP.NET applications" securely, which gives good code examples, and &lt;a href="http://msdn.microsoft.com/msdnmag/issues/03/11/ProtectYourData/default.aspx"&gt;another&lt;/a&gt; on protecting sensitive strings in .NET code in general.  Of course, in the end what they rush over quickly is that if you are storing sensitive keys (for SQL calls) in code, there will virtually always be a way to get to it, through clever reverse engineering, so if at all possible, don't do it!&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=477" width="1" height="1"&gt;</description></item><item><title>dual layer dvds</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/10/19/428.aspx</link><pubDate>Sun, 19 Oct 2003 05:00:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:428</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/428.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=428</wfw:commentRss><description>just noticed today that you can actually tell if a dvd is dual layer just by looking at it.  The grooves in the two layers create interference and create a kind of &lt;a href="http://www.cdman.com/graphics/disc_designing/moire.html"&gt;moire effect&lt;/a&gt;.  Single layer dvds don't have the interference and they have a flatly mirrored surface.&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=428" width="1" height="1"&gt;</description></item><item><title>re: using blogs as database storage </title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/10/07/408.aspx</link><pubDate>Tue, 07 Oct 2003 20:58:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:408</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/408.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=408</wfw:commentRss><description>In response to the &lt;a href="http://blogs.mit.edu/dsrobey/posts/398.aspx#FeedBack"&gt;feedback&lt;/a&gt; from my last blog agent post, the limiting factor in the blog agent project is definitely not the bandwidth.  By no means am I attempting to engineer a Google-scale application, searching billions of pages.  This is a much smaller spider that only hits the specific sites I (and other people signed up for the service) want to watch.  Now, if the number of pages to filter became in the millions, that might be a little much, even for the T3 line the &lt;a href="http://www.webwalkby.com"&gt;site&lt;/a&gt; is hosted on.&lt;br /&gt;&lt;br /&gt;  For a very simple example of what I'm talking about, check the &lt;a href="http://rx7.mit.edu/agentold/rss.aspx"&gt;rss feeds&lt;/a&gt; page of the site, which currently grabs rss feeds hourly, caching them on my site.  Some of the rss feeds shown on the page are scraped directly from the site, either by myself, in the case of the two deal sites, or by others, in the nytimes feed.  In the final version, there would also be a "blog agent" alert feed which would show the filter results.&lt;br /&gt;&lt;br /&gt;
The nice thing about what I like to call "upstream filtering" is that sources do not have to be the raw html pages.  For example, there are already communities who sort through amazon.com, dell.com, bestbuy.com and post their &lt;a href="http://www.bensbargains.net"&gt;results&lt;/a&gt; &lt;a href="http://www.techbargains.com"&gt;online&lt;/a&gt;.  The output of these communities can be filtered instead of doing scrapes of amazon.com, etc.  Examples of upstream news filtering already in operation are &lt;a href="http://www.fark.com"&gt;fark.com&lt;/a&gt; and &lt;a href="http://www.slashdot.com"&gt;slashdot&lt;/a&gt;, among many others.&lt;br /&gt;&lt;br /&gt;
The difference with my system would be that it implements filtering triggers which automatically create the content.  This is where things become more difficult.  Well crafted keyword filters are enough on many sites, although in some, it may be necessary to resort to regular expression parsing, which although I'm not a big fan of, definitely is a powerful tool.  In part, this section is already dealt with by the human filters that post stories to news aggregation sites, eliminating inane or repeat stories (as I see it) so that my agent has to do less work.&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=408" width="1" height="1"&gt;</description></item><item><title>using blogs as database storage</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/10/06/398.aspx</link><pubDate>Mon, 06 Oct 2003 17:12:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:398</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/398.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=398</wfw:commentRss><description>The real reason I wanted to have a blog web service, as I stated in my last post, is that I'm looking at storing web data I scrape off the internet in a blog or blog-structured database, an idea I disucussed a &lt;a href="http://blogs.mit.edu/dsrobey/posts/229.aspx"&gt;while back&lt;a&gt;.  The nice thing about the blog data structure is that it contains many of the fields that one would want if they were designing a database for web scraping anyway, with categories, extra links, time posted, etc.&lt;br /&gt;&lt;br /&gt;
The blog web service would be used by the spider to populate these blogs.  Whenever it found a link that resembled "cheap mp3 players," or whatever was defined as the search params, it would call the blog web service, send it the data structure wrapped in SOAP headers, to the "add entry" function of the web service, and be done.  Ideally the blog web service would have all user functionality a normal blog server would have, including adding new blogs, editing entries, deleting entries, categories, all with a nice WSDL file describing them for programming ease.  However, for the moment all I'm looking for is the "add entry" function.&lt;br /&gt;&lt;br /&gt;
The nice thing is that the data stored in the blogs would look just like a normal blog to a rss reader or blog web control, and it would display just as nicely.  Once the blog web service is written, it becomes trivial to implement the &lt;a href="http://blogs.mit.edu/dsrobey/posts/230.aspx"&gt;upstream blog filtering&lt;/a&gt; project I described.&lt;/a&gt;&lt;/a&gt;&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=398" width="1" height="1"&gt;</description></item><item><title>more on wearable computing</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/09/11/340.aspx</link><pubDate>Thu, 11 Sep 2003 17:58:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:340</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/340.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=340</wfw:commentRss><description>browsing around for more info:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://radio.weblogs.com/0105910/2003/09/11.html"&gt;weblog&lt;/a&gt; mentioned on a slashdot about the BBC article with a little more info.&lt;br /&gt;the &lt;a href="http://naga.mit.edu/enchantment.html"&gt;whitepaper&lt;/a&gt; on MIT group's UI. They bring up some vaild points about the display being very small, task management in that environment, etc. I still think it needs a nice skinning.&lt;br /&gt;Apparently last IAP they integrated the Sharp Zaurus into their design for ease of programming. Very nice.&lt;br /&gt;&lt;br /&gt;They also describe nicelgy some of the &lt;a href="http://www.media.mit.edu/wearables/mithril/intro/topic2.html"&gt;reasons and benefits&lt;/a&gt; behind wearable computing, and their &lt;a href="http://dev-bywater.media.mit.edu/wiki/borglab/MIThril_Construction"&gt;hardware construction&lt;/a&gt;. This is all good for technical details, but the end user doesn't care about that. They care about being able to check their email by pressing a button, or having voice-over-IP seamlessly. MIThril is far from that.&lt;br /&gt;&lt;br /&gt;Oh, and also info about a &lt;a href="http://abcnews.go.com/sections/scitech/CuttingEdge/cuttingedge011012.html"&gt;shoe-based power supply&lt;/a&gt; that provides power from walking.&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=340" width="1" height="1"&gt;</description></item><item><title>wearable computing</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/09/11/339.aspx</link><pubDate>Thu, 11 Sep 2003 17:21:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:339</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/339.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=339</wfw:commentRss><description>A recent &lt;a href="http://news.bbc.co.uk/1/hi/technology/3090392.stm"&gt;BBC article&lt;/a&gt; highlighted the oncoming wave of wearable computing devices.  While currently the iPod is the biggest hit, with any luck pervasive computing will grow.  Some issues still need to be resolved before this becomes a reality:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;A power supply currently can only run a laptop for about 3 hours.  While wearable computers will hopefully need much less power than that, a light, rechargable, high power battery solution needs to be found for the always-on wearable devices.  Perhaps something that created energy from compression while walking or solar arrays&lt;/li&gt;
&lt;li&gt;Interface design.  Current software has desktop oriented design, which does not translate to wearable design well at all.  The &lt;a href="http://www.media.mit.edu/wearables/"&gt;MIT wearable computing center&lt;/a&gt; uses a crufty &lt;a href="http://www.media.mit.edu/wearables/mithril/anduin/index.html"&gt;windows manager&lt;/a&gt;, which will not translate well to slick applications.  Perhaps some form of wsdl for apps needs to be created.&lt;/li&gt;&lt;li&gt;another solution to interface design would be a well-written audio I/O.  If a totally verbal "windows manager" could be created, this would solve all interface problems.  This presents many hurdles, but the end would be worth it.  Microsoft has a &lt;a href="http://www.microsoft.com/speech/default.asp"&gt;S/T interface&lt;/a&gt;which might be helpful.  Heres's an &lt;a href="http://www.dotnetforce.com/sitecontent.aspx?Type=24"&gt;intriguing sample&lt;/a&gt; of ease of use of the SDK.&lt;/li&gt;&lt;li&gt;killer app: something really really cool that appeals to everyone.  MP3 players abound.  For a price wireless enabled cell phones can be had.  Palm pilots are a step in the right direction, but a series of games perhaps, which use the wearable devices.  Something like real-world quake arena, where troops can prowl the streets and their "glasses" overlay a halo around enemy team members.  Kind of like laser tag, but always on.&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=339" width="1" height="1"&gt;</description></item><item><title>blog subscription</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/09/06/317.aspx</link><pubDate>Sat, 06 Sep 2003 20:25:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:317</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/317.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=317</wfw:commentRss><description>bored, so I'm going to try and think through the blog subscription problem.   The system should have 3 parts: the frontend, which users sign up for blogs in, including the keyword filter section, the backend, which uses the subscription information to locally cache rss and filter through the files, and a middle component, which would do any messenging or dynamic feed creation.&lt;br /&gt;&lt;br /&gt;

Let me clarify the design params.  I want users to be able to sign up for different rss feeds which are shown when they hit a webpage.  Once this functionality is in place, I want to be able to do rss filtering, including keyword filters, to create dynamic "personalized" feeds.  Once this is working, Users should be able to have any items matching their filters immediately sent to them through IM, email, etc. &lt;br /&gt;&lt;br /&gt;

My next few posts will deal with issues surrounding this problem.&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=317" width="1" height="1"&gt;</description></item><item><title>blog ratings</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/09/03/303.aspx</link><pubDate>Wed, 03 Sep 2003 18:00:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:303</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/303.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=303</wfw:commentRss><description>Andy has a good rating idea for his &lt;a href="http://blogs.mit.edu/andyraj/posts/292.aspx"&gt;blog rating system&lt;/a&gt;.  However, blog syndication is hard to track, since not all people use the standard methods of syndication.  A better idea might be to use a google-like system of, where the rating is determined by how many links there are to a certain blog.&lt;br /&gt;&lt;br /&gt;
Google would be the obvious implementer of this system, since they've already worked out a lot of the bugs in such a rating system.  However, a simple implementation would be to get all the rss syndication fields and to scan through them for links to other blogs.  Each link to a blog would count as a point (no normalizations as in google), and the total point count would be the rating of the blog.  In a good blog search engine, this rating would be combined with the word frequency to determine relevance.&lt;br /&gt;&lt;br /&gt;
A more complicated system would use a more google-like implementation with the rating determining link strength, algorithms to prevent bogus link pages from boosting one's ratings.&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=303" width="1" height="1"&gt;</description></item><item><title>alternative web services</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/08/28/260.aspx</link><pubDate>Thu, 28 Aug 2003 23:08:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:260</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/260.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=260</wfw:commentRss><description>Today I heard about an interesting way to check the weather. The weather network has an image at http://www.theweathernetwork.com/inter/weathercentre/weatherbutton/images/usa/BOS.gif, which updates every so often to show the current weather status in boston. This had me thinking about how many alternatives to web services I see daily. Most of these have interesting ways of transferring the data along the wire. The &lt;a href=""&gt;blog server&lt;/a&gt; uses an ISAPI filter to find the correct user instead of having using a more simple, but slightly less pretty request header, as in having http://blogs.mit.edu/?dsrobey redirect to my blog. So the query information is actually in the form of a malformed http request which the server spots. Another example of this is the page counter at the bottom of many web pages. The query for the graphic has a GUI in it which maps it to the user's statistics as the server serves the image. Can you think of other examples of interesting inputs to generate web-service like outputs?&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=260" width="1" height="1"&gt;</description></item><item><title>ramifications of rss filterer</title><link>http://blogs.mit.edu/CS/blogs/dsrobey/archive/2003/08/26/230.aspx</link><pubDate>Tue, 26 Aug 2003 06:03:00 GMT</pubDate><guid isPermaLink="false">dea6705e-d99c-4a22-9533-aabb455eb28d:230</guid><dc:creator>dsrobey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mit.edu/CS/blogs/dsrobey/comments/230.aspx</comments><wfw:commentRss>http://blogs.mit.edu/CS/blogs/dsrobey/commentrss.aspx?PostID=230</wfw:commentRss><description>the rss searcher could also be used as an efficient form of upstream blog filtering, as discussed briefly in .  To reiterate, if a group wanted to have a site dedicated to mentions of longhorn rumors, or SCO rants, they could syndicate many news sources which already provide rss feeds and filter out the ones not relevant to their site.  The rss search robot could systematize this for them.  If results were stored in another feed, they could just plug in the search string "SCO" and they're basically done.&lt;img src="http://blogs.mit.edu/CS/aggbug.aspx?PostID=230" width="1" height="1"&gt;</description></item></channel></rss>