MyBlogroll
MyBlogroll
I'm currently willing to rename MyBlogroll. Indeed, many friends of mine told me that "Blogroll" is a too geeky term and I do agree. So after days of thoughts, I've found many different new names but the one I prefer the most is already taken of course (well, it's .com domain name). It's actually for sale via Afternic.com service for like 250$. Is that service secure ? Did someone already have an experience with Afternic ? How do I know that I won't buy a domain name with email accounts spammed with hundreds of exotic mail ? More important, how can I check the domain name isn't black listed as a spam sender ? What are the other precautions before buying a domain name ?
Thomas Freudenberg made its own RSS Bandit Template, based on MyBlogroll template. Cool !
I also have to admit that RSS Bandit is getter better and better. Especially at the design level... I really am a fond of Outlook 2K3 style...
Finally, I found some time to work on MyBlogroll and today, I worked on it all day long !
For many different reasons, I decided to store feeds content into a MS SQL Database. But I immediately ran into a problem ! My problem was that some posts were extremely long (> 5000 characters) and I was storing the post body/description into a NVarChar field which is 8000 byte long but limited to 4000 chars since it stores each characters on 2 bytes (I'm not sure of that, just tell me if I'm wrong). So, I decided to switch the Description field type to NText (I looked at .Text database for that). It now works perfectly since post body isn't truncated anymore.
What I'd like to know now is : What are the cons and counter performances about using NText fields (if there are any) ?
Sorry, this blog may look to turn as MyBlogroll Blog. I promise I'll post some .NET content very soon ! But which logo do you prefer for MyBlogroll ?
If you are given talented graphic skills and you have some spare time to waste, I'd be glad to see new logo propositions :)
Peter Van Ooijen says that custom controls are no rocket science. I effectively could create my first custom control pretty easily today, and I'm pretty glad of this. Maybe I'll release a components pack, which would contain the different key components of MyBlogroll UI (Toolbar, TabControl, Action Panel), which would use a real skin feature. But here is not the point..
As I said in my previous post, MyBlogroll is my very first .NET application and I had the idea of developing it, to firstly learn C# and ASP.NET. Therefore, I guess I should stick to ASP.NET technology and it's development methodologies... But when you've been working for +4 years on an web-based IDE for intranet/internet applications development, which was entirely based on XML/XSL transformations (every damn screen was generated with XSLT), you'll understand that I feel really comfortable with XSLT...
When I started MyBlogroll development, I naturally reused my XSLT components library (which lets me create a toolbar, actionpanel, tabcontrol, in just 30 sec)... But I immediately realized I was going the wrong way if I wanted to really learn ASP.NET ! I should use ASP.NET the way it should be used... I mean: Using Server Forms, Server Controls, taking advantage of the Viewstate, etc... Indeed, when using XSL, you can't access programmatically to what's generated... Peter also made me understand why Don Box's blog subtitle is "Undoing four years of XSLT-inflicted damage inside the big house". I don't know if it's for the same reason as mine but I have a potential answer to this subtitle...
Ok, so let's try to forget XSL for a while and develop MyBlogroll_ with *real* ASP.NET ! But that's only one point of my previous post. I'd like to get your opinion on the other things I mentionned please :) Thanks :)
If you are interested in MyBlogroll, please read this post ! Thanks !
Since I'm pretty new to .NET technologies (in fact, MyBlogroll is my very first .NET application), I think I'll need your help and advices so that I can give you a software of quality... I have a lot of questions in my head since I started the development of MyBlogroll... Mostly about how it should be structured and organized.
- XML/XSLT:
MyBlogroll is an online/web-based RSS aggregator/reader. The purpose of it is to download and aggregate RSS feeds, and to display them to the user. Since RSS is an XML document, can you tell me what's better than XSLT to display this kind of data. I have a very strong background in XML/XSLT (+4 years of daily use) and I'm very very comfortable with XSLT. Actually, *all* screens of MyBlogroll are rendered with XSLT. The Toolbar on top, the Treeview for subscribed feeds, the TabControl and the Blue Action Panel on some screens (Feed Properties, OPML Import, etc.), everything is rendered using XSLT ! Pretty cool, no ? Well, it may be not so cool... The problem I encountered with this technique I really like (moreover, XSLT is a standard technology), is that I don't really use ASP.NET... I only have an XML WebControl in all my ASPX files... I might be wrong, but, by doing this, I'm not using any advantages of ASP.NET technology. In fact, I'm doing it the old ASP way without using server forms/webcontrols... I don't have the Viewstate, and I can't programmatically access what's rendered with the XML/XSL transformation... Maybe I should take some time to learn how to create ASP.NET Server Controls to migrate the Toolbars, TabControls, and Action Panel XSL components to ASP.NET ones. The fact is that it's all about XML rendering and XSLT is so tailor-made for that...
One another point: since I'm loading XML to directly apply an XSLT stylesheet on it, I don't use any Objects to manipulate RSS Feeds, Items, etc... There are a lot of RSS libraries out there, such as RSSComponents, RSS.NET... I've been reading some articles about XML Serialization/Deserialization. I started to think how I can use all these in MyBlogroll... but is there a reason for me to use OOP and all these RSS Libraries ? Since I don't have a strong OOP background, I just want to know the advantages of using objects, etc, when it's all about XML data manipulation and rendering...
What do *YOU* think ?
- Aggregation Service:
If you tried MyBlogroll, you have probably noted that you have to manually refresh each feed.. There is not "Refresh All" button. Since there is no asynchronous action (yet) to download RSS feeds, I told myself it would be too long to refresh all feeds (even using a progress bar). That's the reason why there is no "Refresh all" button :) Then I had the idea of creating a Windows Service which would download, aggregate all subscribed RSS feeds and update the feeds user database.. Scott Watermasysk did this, but I couldn't put my hands on it yet... And there is also Syndicache which has the same purpose. In my opinion, a Windows Service that would consolidate RSS Feeds into a database or as XML files is the best idea: decoupling MyBlogroll in different logical application blocks sounds as a good architectural design. It would offers the possibility to use many different ways of displaying the feeds database content. The problem (there's always a damn fuckin' problem) is : What if you can't setup a Windows Service on the server on which you want to host MyBlogroll. For instance, I'm hosting www.myblogroll.com on a shared server at WebHost4Life, using the 20$/month account.. I don't think I can install a Windows Service on this kind of server and I can't afford my own personnal server. Other people may not have the possibility to install a Windows Service too. But the fact is that I don't think it's the user's responsability (more particulary in a web based application context) who has to refresh and updates it's RSS feeds database.. So, Windows Service or not ?
Does a technique like this one ("Scheduled Execution in ASP.NET" by Ashutosh Nilkanth inspired from Paul Wilson's article) could make it ?
Or is it possible to install a service on a shared server, by using the trick of Craig Andera : HowTo: Write a Self-Installing Service ?
- ASP Mode:
For the moment, MyBlogroll is an application that need to be installed on your own computer, or better, your own server. What I plan to do, is to provide MyBlogroll in ASP mode. I'd like people to be able to subscribe to an account on www.myblogroll.com, import their OPML file, and read their favorite feeds directly on the website. I think this is a very good idea, but I also think that a really powerfull server, with a very large bandwidth would be required, since it would be like a Hotmail service for RSS Feeds. I'd really like to be able to provide this. Would you pay for that kind of service (if so, how much) ?
- What do you expect from a web aggregator ?
What are you expecting from MyBlogroll ? Do you want a simple Web version of a traditionnal Windows Aggregator like SharpReader or FeedDemon (same UI with a 3 pane view, Feed Items Selection, etc) ? Or do you think it should be more web-adapted ? In my head, Feed reading should be fast and simple. Desktop aggregators just do that very well... See why Roy Osherove likes SharpReader so much. But, I just want to be able to do this from home, from school, from work, from holidays, from anywhere.. That's why I started out MyBlogroll development... I've noticed many discussions on RSS Aggregators : here at Alan Dean's blog for instance.. So, what's your opinion ?
- Database or XML files ?
How should I store RSS feeds content ? Into an MSSQL Database or as XML Files on disk. MyBlogroll is currently storing all these as XML files, just like all other Desktop aggregators... Database or XML files ?
I'll stop now... PLEASE, I REALLY DO WANT TO KNOW YOUR OPINION AND SUGGESTIONS :) THANKS TO ALL !!!
MyBlogroll had quite a good success for it's early launch. I also updated the website which now has a FAQ, Download and Contact pages... I know some of you are waiting for another version but unfortunately I really can't spend as much time as I would like to, working on MyBlogroll ... I have a lot of features in my head that I'd like to be implemented in it... But, please feel free to send any ideas, suggestions. And thank you all for your interests in MyBlogroll !
There it is, the first beta version, which is more an alpha one, of MyBlogroll, the ultimate Web/Online RSS Reader (well not so ultimate for the moment, but that's another point :). Click here to download it !
As it's still in early development stage, MyBlogroll will only be available as an application, and not as a public service. Therefore, you'll have to set it up on you own computer or better, your own server. Just read carefully the instructions to install it (Readme.txt), which I think are pretty easy, since there isn't any database to setup...
Of course, all suggestions, feedbacks, ideas, feature requests (a lot are in my head, just let me some time to implement them), unexpected behaviors, bug reports, are welcome, just mail me : info (at) myblogroll.com.
I received some comments on my last post telling me to stop playing around and get back to work, so that I can deliver a first version of MyBlogroll. Well, I do agree ! I said that I'd publish a beta version of MyBlogroll soon. I didn't, because I was really busy at work, and I couldn't spend as much time on MyBlogroll as I wanted to.
But, I'm currently packaging a real early alpha beta version because a lot of people asked it, even though I'd prefer to deliver a first version with much more features... Just let me some time to zip up the folder and prepare a small HowTo file, to explain how to install it. Stay tune...
I'm back from vacations. I spent two wonderful weeks at Saint-Tropez, in the south of France. Just sad it's already finished, but let's work again !
Here is what's coming in a very near future (this week) :
- MyBlogroll : I will release the first beta version (which is more an alpha version) of my Web/Online RSS Reader.
- "Progress Bars in Web Applications" article : I'll demonstrate how you can improve the quality and user-friendlyness of your web applications using progress bars (ASP.NET/C#).
- "XMLCursor" article : XMLCursor is a wrapper class (C#) which encapsulates the DOM, and provides a set of really usefull methods to manage XML documents.
- A new .Text Skin.
It's time for me to take a little vacation with my wife, my dog and my cat. We're heading to the south of France, at Saint-Tropez. We'll be staying there for a couple of weeks and I hope I'll be able to find some time to read all the blogs subscribed in my blogroll...
I already just can't wait to come back to Paris, just to launch my Web/Online RSS reader: MyBlogroll (only screenshots are available, the beta will be released at my vacation return).