October 2005 - Posts
Recently, after leaving all the boxes checked for my Windows update patches - a ton of my apps broke on me. I got to find out how much stuff I use is actually implemented using ActiveX Controls in an IE browser window - The Yahoo! IM LAUNCHCast player, some HP Printing software, and of course, the addictive flash internet games my wife and kids love to play.
After a little research on the problem - Google Groups revealed the culprit to me: KB896688.
If all of a sudden you have all manner of ActiveX trouble in your browser - you can uninstall that update specifically with add/remove programs and then try downloading the update itself from here.
Like the Google Groups post mentioned - you might be able to get it to work by installing the update by itself with the download - or not.
Recently I posted about what fields you might want to include if you were building a newsletters table so I thought somebody out there might find it useful if I posted information on how I'm building my Articles table. DevCampus is going to contain technical content in the form of articles so the Articles table is going to have quite a number of columns. This is your chance to provide feedback to me too, while I'm still building the database. I've visited various technical websites and looked at what they offer along with their articles to help form my ideas. Anyway, I'll get right to it:
Table: Articles
- Alias - (Primary Key) This varchar column is going to contain a unique identifier that I am calling an "alias" name. It will be used in URLs throughout the site to point to an article by it's alias. For example, if I wrote an article on database naming conventions, I might give it an alias of "DatabaseNamingConventions". Then, by having my default.aspx page look for an alias querystring name, be able to provide URL's like http://www.devcampus.com/?DatabaseNamingConventions (don't bother clicking it's just an example) in order to point to an article easily and also have a logical name (the alias) appear in the URL in an attempt to gather as much google juice as possible. This would also make constructing URL's dynamically very simple.
- AuthorSystemUserName (Foreign Key) - This column isn't named "AuthorId" because the reference (at least in my database) points to the "SystemUsers.Name" column. DevCampus authors will have to be registered system users so - for my situation the name makes sense. Man, I'm quite a nerd defending my naming choices, aren't I? Anyway - this column is pretty self explanitory.
- PublishedDate - Pretty obvious. The date the article is visible on the site.
- PublisherSystemUserName (Foreign Key) - In my case, I want to know who clicked the "publish" button if it wasn't me.
- LastEditDate - The last time a registered user edited the content.
- LastEditorSystemUserName (Foreign Key) - So I know who was the last one to touch the content of an article.
- CurrentVersion - all kinds of content on DevCampus will be editable by registered users so, it's also going to get versioned.
- PreviousVersionCount - how many previous versions of the content there have been.
- NumberOfRatings - how many people have rated the content
- RatingPoints - I'll divide this by value by NumberOfRatings to get a rating value from 1 to 5 stars.
- Ranking - unlike a "rating" - a "ranking" will be more of a popularity thing - from 1 to 10 scale instead of 1 to 5 - formula for this still to be determined.
- Title - Something more descriptive than the alias that can be displayed as the article title on a web page.
- TeaserText - also referred to as the "abstract" by some people.
- IsDraft - articles that are marked as drafts won't be visible on the site until they are published. This will help control what's published and allow authors to save their work from the sites admin tools.
- PageViews - how many times the article has been viewed on the site.
- FeedViews - how many times the article's feed has been accessed.
- FeaturedArticleImage - the name of the file to go with the article while it is a featured article in its respective department, course, or level.
Some other tables that will have a foreign key constraint referencing the Articles.Alias column:
- Comments - pretty obvious. To store comments submitted for various pieces of content.
- ToolBox - this table will store information about the technologies used/discussed in the content.
- RevisionHistory - this table will hold previous versions of the content.
- ArticlesDepartmentsCoursesLevels - this table will allow me to associate content with various different departments, courses and levels (levels are like 100, 200, 300, etc. under courses in the content hierarchy). An article on Atlas in ASP.NET 2.0 obviously spans across more than one course (at least ASP.NET 2.0, Atlas, and Ajax...maybe JavaScript, too) so I want to be able to have that many-to-many relationship information stored in this table.
- Downloads - a table that contains the location of files associated with the article; code, images, etc.
Well, that's the list so far - this is actually a fun exercise for me to do as I build portions of the DevCampus database. I'm actually thinking that I will create a course under the database technologies department for "What columns should I have in my table" that just has all kinds of examples for things like Products, Employees, Invoices, Vehicles, Orders, etc. Then anybody with some expertise in a certain domain can contribute to the table examples. Good stuff.
Tonight I have decided to do some house cleaning on my hard drive. For me, this means uninstalling software that I don't use much or installed just to review a product. So I'm in Add/Remove Programs and I'm going down the list, uninstalling quite a few applications.
So far, only 1 out of 13 have entirely cleaned up the files they installed on my computer. That's pathetic. The one that did a good job? Some overclocking program for my ASUS motherboard.
Look, to anyone out there that makes install and/or uninstall routines. Please make sure that your un-installer does AT LEAST the following:
- Deletes the directory it made in my Program Files directory.
- Removes any information it created in the registry related to itself (unless I tell it not to for some bizarre reason). This means COM/DLL registration stuff.
- If your install created any sample web applications, remove your directory in my wwwroot directory and remove your web app from my IIS website(s).
Is that asking too much, really? You'd think so based on my results so far.
As I've been working on my DevCampus.com website, one of the things I am taking very seriously and spending time thinking about and researching is my RSS strategy (or "xml feeds" in general, I'd like to at least offer ATOM and maybe another format to please everyone).
Last night I started reading Developing Feeds with RSS and ATOM. I'm hoping this book will give me some insights into being on the other side of the fence. What I mean by "other side of the fence" is that while I've been blogging and consuming RSS/ATOM feeds for years now, I've never actually been responsible for creating the XML and producing my own feeds for anything yet. Since nobody can deny the popularity and demand for xml feeds, I'd be abandoning quite an audience if I didn't have a huge variety of feeds for people when DevCampus finally goes live. (Which I hope to be around the first of the year, btw) While I think it's a bit extreme for Scoble to say you should be fired if you don't have an RSS feed, I would agree that you look out of touch and out of date if you don't provide any. Gotta give the people what they want, right?
So anyway - I have high hopes and goals for RSS and the content on my site. I've listed them below. If you've ever been in charge of managing feeds for a website, blogging engine, whatever, feel free to chime in with your comments. I haven't really got far into this book yet so I'm looking for feed-managing wisdom from those willing to share it. "You shouldn't do that, it'll chew up far too much bandwidth" or "Oh that's easy, use this custom HttpHandler/HttpModule that's freely available at this website and it will take care of everything for you" - you know what I'm talking about. I imagine that feeds have been around long enough that some components to produce feeds are already out there. The notes below are as much for my brainstorming as they are for you to read so, keep that in mind I guess. I make no claims that these ideas are original or innovative.
DevCampus.com RSS Goals:
- Feeds for the most recent content - the last 5, 10, 25 or 50 pieces of content. Or maybe provide a URL that lets someone specify the number of items they'd like to see with a querystring value?
- Allow feeds to be dynamically requested by the use of certain URL's. For example, if a request like http://www.devcampus.com/Database/SQLServer/RSS (or /ATOM) came into my application, I'd like for my application to know this is a request for the latest content under the SQL Server course under the Database department. This would also allow me to automatically have feeds available every time I add another department or course of content. I could simply construct URL's based on the current department and course and stick that behind a little RSS or ATOM icon for each department and/or course home page.
- Request Tracking. I'd like to be able to keep track of when and how often requests for feeds are made. If I see 10 times as many requests being made for an ASP.NET 2.0 feed as I do for underwater basket weaving in VB.NET I can adjust what content I am writing for accordingly.
- Search Feeds. If someone searches for a specific keyword or phrase I'd like for them to be able to subscribe to the results as a feed. That way they don't have to keep coming back to my site and search to see if there is any content that they might be interested in.
- Custom feed URL's. For example, if I wanted to allow people to subscribe to newsletters via RSS, I'd like to be able to designate a specific URL (that I store in a database most likely) and have any URL in that list of URL's return the XML for a certain feed. Maybe I'd just associate a certain SQL query with that URL and provide a DataReader, DataSet, or DataTable to an RSS/ATOM generating component. Whatever works.
So - if you have any advice for me, I'm all ears.
Speaking of Books - thanks to my gracious contact at Osborne-McGraw Hill, I received a couple of books in the mail today.
ASP.NET 2.0 Demystified and Expert Oracle PL/SQL
I'm not sure that my quest for being "good enough" at PL/SQL will ever end but, I try to learn a little bit every now and then if I can. As far ASP.NET 2.0 - well, this will be the 3rd book on it for me. Hopefully it will fill in the gaps for me.
Since I'm an author and I like to write about technical stuff, I'd really like to be able to use Amazon.com's web services to display books on my DevCampus.com website that relate to the topic(s) covered in an article or whatever text is on the page. Sorta like the way Google AdSense works, but for books. For example, on an article page that covers XML Web Services, I'd like to see the top 4 or 5 search results for XML Web Services (w/ a cover shot image, associate link, price (maybe), isbn, star rating (maybe), etc.) in a simple ASP.NET user/server control package. From what I've looked at so far, it seems like Amazon.com Web Services are up to the task. And it's free to register as a web services developer - nice.
Has anyone ever developed using their web services and if so - what was your experience like? I was going to roll my own "relevant books" feature for the site but figured I would save myself several hours by consuming Amazon.com's Web Services instead.
More Posts
« Previous page