April 2003 - Posts
I thought I would throw out a few details of my trip to the Imagine Cup.
It is apparent in Rob's post, I did not win. I dont feel bad because Rob and Tu's apps were very nice. There is no way an application I wrote in 3 weeks can compete with projects that have had a year (or even months) of development. Everyone seemed very impressed with my service, but it did not have the polish of the two projects that won.
For me, the best part of the weekend was when the judges gave us feedback on our applications. I especially want to thank Keith for the excellent feedback. I spent some of the long trip home drawing out some new designs for my application based on some of his ideas.
I’m heading to Redmond this weekend for the "Imagine Cup." The Imagine Cup is a programming contest for college students. There are 8 teams going to Redmond that have created Web Services that are "Economically viable or socially responsible" (or something like that), basically any service seems to fit the rules. I will be competing against the 7 other teams for two chances to go to TechEd in Spain. Winners in Spain will be announced at the first keynote of TechEd.
I’ll be getting into Seattle a little early on Friday. Anyone have recommendations for tourist-type things to do in Seattle before dinner? We are having dinner with some people from Microsoft. I don’t know who, but I wish I could make requests.
My application allows developers to share class libraries and code snippets with other developers from within Visual Studio .NET. I’ve created multiple Web Services that pull from SQL Server 2000, an ASP.NET page to browse everything and add new components and snippets, and two VS.NET addins. One addin is for finding and downloading components, and the other is a snippet manager. The snippet manager is really slick. You can “subscribe” to snippets on the web page and then you can access them on multiple computers. You can also drag some code onto the snippet manager and upload it to the service. I also added an RSS feed for recently updated components and snippets tonight.
Hopefully the application is on par with the other applications, I don’t know what to expect. If I have Ethernet in the hotel I should be blogging. If not, expect an update and pictures on Sunday night or Monday. It would be nice to go to TechEd... Now if I could only find a way to win a trip to the PDC in October.
A few months ago I was at a .NET training session for Microsoft's "Student Ambassadors". The session was a general overview of .NET taught by Doug Seven (dotnetjunkies). The training was good but I knew most everything that was covered. So, I wrote a few programs.
The only thing worth keeping was a Breakout (ball, paddle, bricks) style game. I recently dug it up and uploaded it to GotDotNet user samples as an example of doing some basic game functions in GDI+ (collision detection, double buffering, etc). I'm trying to give a little back to the community I've taken so much from.
It seems to be moderately popular. I don’t know if people are interested in games, GDI+, or why it has more than one download, but it feels good to have someone using stuff that was just wasting time on my hard drive. I'll have to see what else I have lying around.
It feels like I’ve been working nonstop on projects the last two weeks. It feels good to finish one. I wish I could say I’ve been working on projects I enjoy, like my RSSLibrary and RSS Windows Service, but it’s been projects for school and a programming competition project. It’s going to feel so good to graduate in 37 days and have a little bit of free time.
I finished my “physics based explosion modeling” program tonight. It uses partial differential equations (the nasty ones) to create models of explosion. The explosions are rendered by a set of points in DrectX. It needs a bit of work before it looks realistic, but I doubt I have time to do that. I’m trying to release the source of most of my other projects (why does it take 72 hours for user samples to show up on gotdotnet?), but I cant imagine anyone being interested in this outside of the numberical modeling field. But, as I have stated before, I like screenshots.
Explosion in center
Explosion on floor
As I'm coding along I notice my computer says it's 3:10. It took me a very long time to realize where that hour went. I guess I should get to bed soon.
I spent the evening trying to create a Visual Studio .NET tool window for an add-in that I'm working on. I must say this is the first thing I've tried to do in .NET that I've found really difficult. I've found a couple of articles that don’t seem to work. Some have some unknown variables show up in the middle of their code that they don’t explain, and some use this "shim" component that I cant seem to find on MSDN anymore. I've found quite a few newsgroup postings of people having similar problems and I'm wondering why this is not easier.
Maybe once I figure this out and get the project done I'll write an article describing how it works.
I had a little bit of spare time this evening and decided to make my RSSLibrary work with remoting. I changed a few things and built an RSS Windows Service to test it out.
Now I have a service that manages all my RSS feeds at a central location and I only needed to change a couple lines in both the aggregators I have created with my library to have them work. I must say that Remoting is very cool.
The service has no GUI and my aggregator is really ugly, but I like making screenshots.
Discussion has continued today on the usefulness of a .NET library for handling RSS. Chris described why he thought it was a bad idea and Don agrees with him. I'm probably not experienced enough in design to argue with them but I thought I’d throw my inexperienced two cents out, anyways.
I agree that RSS’s state is very dynamic and the library would need to be updated often, but that is one of the reasons I thought a library would be useful. Since everyone seems to be interested in creating their own aggregators, I have a feeling there will be a lot more personal aggregators (unless someone releases an aggregator everyone likes soon). So, every time something new comes along, everyone would need to change their application to support it. I would much rather download a new library, change a few lines and have my application magically support it.
I spent a huge chunk of my time writing my aggregator trying to figure out why certain feeds would not parse or why certain OPML files would fail. I dont have as much experience with System.XML as I'd like, but it seems to me an RSS library could save a lot of people from having to do quite as much tweaking every time they found a feed that was different or a new standard became available.
But I’m just a college student with only a few years of work experience. Plus, I might be considered biased because I released the code for my library last night.
As mentioned earlier, I have made my RSSLibrary I've been working on available. I have released a binary and the source code of my RSSLibrary in the workspace and I described the features available and those that need some work. Hopefully the source is ok. Some of it was written late at night and I've not really had time to review all of it. Also, it was created with VS.NET 2003 final beta so the project files probably wont work with VS.NET 2002. If anyone knows how to fix this, let me know.
I also created a quick document on how to use RSSLibrary. It's not great because I threw it together in a few minutes but hopefully it describes some basic functionality.
Some of the recent blog entries about finding an RSS Framework sound similar to a post I made about a month ago. After I posted that I decided to work on a framework myself. Unfortunatly, I've not had a whole lot of time to work on it but I have it working, with only a few bugs. I've build my own basic aggregator with it but I need to work out the bugs before I create something large.
My library does many of the things requested in the recent entries. I tried to design it similar to the FCL and provide enough functionality so you can create an aggregator with just a few lines of code. I created an aggregator similar to Newsgator and it was very few lines of code.
I was planning on waiting till it was mostly done to release it but with some big projects coming up I've decided to go ahead and release it in it's current state. And see if I can drum up some help. I've set up a gotdotnet workspace and I will be uploading the code later tonight. I'll also be posting a story here describing how to use it.