Posted By: Rydal Williams | posted @ Wednesday, July 01, 2009 7:23 PM |
It seems the MySpace gurus are giving back to the community, they are now providing there IE performance tracker for free to the public.
MySpace’s Performance Tracker is a browser plug-in that help developers to improve their code performance by capturing and measuring possible bottlenecks on their web pages.
- Measure the CPU hit and memory footprint of your pages as they render on the client’s browser
- Review screen shots of the page while it renders
- Review the rendered HTML on each point of the page’s lifecycle
- Measure and show estimates of the time it takes to render each section of the page in different connection speeds
- Validate the content of your page against a set of proven “best practice” rules of web development
- Review downloaded files and show download time estimation on different bandwidths
MySpace’s Performance Tracker currently supports Internet Explorer 6 and up.
Download here

Posted By: Rydal Williams | posted @ Monday, June 08, 2009 5:43 PM |
There are a lot of goodies embedded in the framework, problem is, there are so many namespaces that it is almost impossible to know them all, as a matter of fact I doubt that there is any one person that knows all of the framework in and out. As usual, this post is about my experience with weird code that could have been done easily using existing built functions. I’ve seen developers write 20+ lines of code to this stuff while covering every possible scenario.
convert to absolute
System.Web.VirtualPathUtility.ToAbsolute(params);
convert to relative
System.Web.VirtualPathUtility.ToAppRelative(params);
System.Web.VirtualPathUtility.MakeRelative(params);
Posted By: Rydal Williams | posted @ Monday, June 08, 2009 11:09 AM |
Apparently, converting a SQL long datetime string to just a date seems to be a head banger for some people. therefore, I’ve decided to publish the way I do it, which I believe is easy and probably the most efficient.
convert(varchar(10),[datetimecolumnname],101)
replace [datetimecolumnname] with the column name of the actual column that is of datetime data type.
Posted By: Rydal Williams | posted @ Wednesday, May 06, 2009 3:18 PM |
While trying to install SQL server 2008, the installation failed several times because of a single error that reads “The SQL Server 2005 Express Tools are installed. To continue, remove the SQL Server 2005 Express Tools.” to fix this error, I simply deleted the following registry key.
SOFTWARE\Microsoft\Microsoft SQL Server\90
some say removing SQL Prompt resolved the problem but in my case I have never installed Red-Gate SQL Prompt.
DISCLAIMER: Backup your registry before modifying, messing around in your registry usually leads to trouble and reformat.
Posted By: Rydal Williams | posted @ Friday, April 17, 2009 5:24 PM |
/// <summary>
/// using reflection to create an instance of a generic type
/// </summary>
/// <returns>T as the generic type</returns>
private static T GetNewObject()
{
try
{
return (T)typeof(T).GetConstructor(new Type[] { }).Invoke(new object[] { });
}
catch {
return default(T);
}
}
/// <summary>
/// Create an instance of type T using the activator
/// </summary>
/// <returns></returns>
private static T GetNewInstance()
{
return (T)Activator.CreateInstance<T>();
}
Posted By: Rydal Williams | posted @ Sunday, March 01, 2009 5:04 PM |
It’s amazing how cheap hard drives have become, I mean dirt cheap – you can practically get 1TB+ for $$. Whipping together a backup system or strategy for any business should be none trivial. Considering corporate and commercial systems that would like rack able backup systems and etc, they can easily put together a 1U/2U or what ever it is with RAID for a couple of grand. Point here is that why are solid businesses that are well funded going out of business because of lack of backups? How in the world did you build a full fledge architecture without a backup?
Not to mention cloud systems such as Amazon S3, you get charged 0.$ per GB, what are they waiting for? Its frustrating! Take JournalSpace for example, they lost everything because of lack of backups and here is a quote from their whack excuse.
Here is what happened: the server which held the journalspace data had two large drives in a RAID configuration. As data is written (such as saving an item to the database), it’s automatically copied to both drives, as a backup mechanism.
RAID? Who said RAID was a backup solution. People please! RAID is for redundancy not a fool prove backup solution. A recent belly under was Magnolia, no backups – absolutely none! My goodness! They are out of business because of lack of backups, now that must be frustrating, I’ll go nuts if that happens to my business that has had some steady growth. How do you stay in business for this long without any backup?
Please everyone backup and backup often, daily, monthly, weekly, do something!!!!
Posted By: Rydal Williams | posted @ Thursday, January 29, 2009 1:38 PM |
A co-worker sent over a link to Wikipedia and I thought it was just another link, well it is until you start reading. I created a screen shot of the first two paragraphs just in case it get fixed or you can pay a visit http://en.wikipedia.org/wiki/QWERTY directly if the guys at Wikipedia haven't replaced it.

Posted By: Rydal Williams | posted @ Tuesday, January 27, 2009 1:29 AM |
The title of this post should really read - "JavaScript framework to the rescue", because it really doesn't matter if you use JQuery, Prototype, etc.. I interchange the use of my JavaScript frameworks with JQuery and Prototype being my favorites and I really don't know why I select one over the other, I guess it depends on the day.
Anyway, while working on a freelance project, I was tasked to implement a PayPal subscription button and I went "ah ha!" - that's going to be easy and indeed it was, but, the problem was/is that PayPal quick add on buttons required a form tag to perform the actual post and if you are like me, and you make intensive use of master pages and tend to put the form on the top level master page, you will quickly find out that PayPal buttons will not work and that's because the top most form will perform the post in the asp.net world, therefore, your page will act like a normal post back and off course you can't do without it.
My first reaction was "Oh, really! someone has to have figured it out" and yes there were several solutions but not of them really blended in well with my programming rules and regulation and the one I'm speaking of at this moment, is my rule that states everything must be simple and disconnected and requires absolutely no effort to move, change, or modified - in other words loosely coupled.
I found solutions that will create custom forms that have flags that indicated whether or not a form tag should be written or not, I saw other solutions that simply just remove the form tag from the PayPal and do some sort of hack to wire things out, I saw another that uses a HttpHandler to perform the post behind the scenes, either way, they were all too expensive and too convoluted to implement. So I invented my own, my thought was what if I could change the top form action URL depending on what was clicked.
I therefore set off to analyze the PayPal button html and noticed that there were a few tags that are unique to the PayPal html and I definitely don't have anything in the current project with such names and that was it! JS framework to the rescue! here is my sample snippet that seems to work fine so far.
1: if ($('input[name=submit]') && $('input[src=https://www.paypal.com*]') && $('form#aspnetForm')) {
2: $('input[name=submit]').click(function() {
3: $('form#aspnetForm').attr('action', 'https://www.paypal.com/cgi-bin/webscr');
4: });
5: }
My line 1 may be an overkill but I just wanted to make sure that we have some form of PayPal form content on the page and its located within an asp.net form, I then attached to the on click event of the button and modified the top most form's action attribute when that event is fired, otherwise, everything else works as normal - now, that's what I call simple and efficient 5 lines of code.
Next entries »