Andy Edinborough

Insert something cool to say here

CSS Stress Testing and Performance Profiling

Posted on April 14, 2011 in Code    Tagged css test stress performance profiling Tweet This

I present you with the CSS Stress Test bookmarklet.


Now let me explain: I have been losing my sanity over the oddest issue.  The project I’m working on right now has a fairly complex stylesheet.  Performance for the site is absolutely critical.  I’ve done my best to squeeze and optimize every line I can.  In all browsers, it runs like a champion.  Except IE9.  It runs terribly in IE9.  To make matters worse, it runs fine in IE8, IE7, and though it’s mangled, it even runs in IE6!


Something specific to IE9 was causing a serious performance glitch.  I realized fairly quickly that CSS was to blame.  Disabling JavaScript had no effect, but disabling all CSS instantly fixed performance.  I went through the usual suspects: filters, and various new CSS3 properties, but nothing seemed to help.  So I reached out to the community looking for something that could profile my… Read More →

Reading Entity Framework Code First Objects from a Stored Procedure

Posted on November 1, 2010 in Code    Tagged entity framework code first c# t-sql Tweet This

I may be a nerd (that is, a geek who get’s paid), but I don’t enjoy writing stored procedures.  However, in working with the Entity Framework, I’ve found that doing complex and often repeated queries of my Entity Framework sets is rather inefficient.  My complete round-trip page loads (generate and execute query, then produce HTML) takes about 1,000ms on average.  So I wanted to replace this ugly query with a simple stored procedure—precompiled, ready to fire, and highly optimized for my specific query, while still having the ability to do ad-hoc queries.

So at PDC10 I made sure to talk to the EF boys and they pointed me to the System.Data.Objects.ObjectContext.Translate method.  This little bad boy will take a DataReader and create an enumerable of my objects from it—perfect.

Let’s walk through the “gotchas”.  In my example below, I have a class named Product.  I want to do… Read More →

C# Imap and Pop3 Library

Posted on March 26, 2010 in Code    Tagged pop3 imap c# Tweet This

Sigh. 

These are text-based services… it’s not that hard, and yet all the projects I found out there were nasty—bloated and severely error prone.  So, I rebuilt one.  This is based heavily on xemail-net.  I simplified it quite a bit—created standard methods for repeated code blocks and implemented a base class to simplify the creation of the Pop3 client.

Getting Started with Yahoo and OAuth

Posted on January 29, 2010 in Code    Tagged c# oauth yql yahoo Tweet This

Yahoo doesn’t offer much help to .NET/C# developers when it comes to getting started with using their API’s and OAuth.  So I’ve put together a quick-hit starter pack.

  1. Yahoo! YQL Console
    This is fun for all ages!  I just get all giggly when I see all that Yahoo has made available through YQL (Yahoo Query Language).  You can use this tool to perfect your queries and figure out just what you want to accomplish.  As a supplement, you can check out the PDF Documentation as well as the online version.
  2. My Projects @ Yahoo Developer Network
    Once you’ve got your base application logic in place, you can request the keys you’ll need to communication with Yahoo using OAuth.  This will let you take advantage of the higher usage limit of 100,000 requests / day and 10,000 requests / hour.
  3. Simple C# OAuth Code
    Unfortunately, the C# OAuth libraries listed… Read More →

Use Late-Binding in C# Now, without .NET 4.0

Posted on June 17, 2009 in Code    Tagged .net c# late-binding Tweet This

The lack of late-binding in C# has been one of my biggest gripes about C#.  Finally, in the .NET Framework v4.0, the dynamic keyword has been introduced (it could be argued that it is too loose—allowing for variant types).  But until it is released, the need still exists, and even then, not all clients will immediately support it.  So, in a bind, I wrote a simple class to allow access to objects via late-binding in C#. 

The trick to figuring out how to write the code came from using Reflector to decompile some VB.NET code… (I love reverse-engineering :]).  The answer is that the VB compiler makes use of an area of the .NET Framework within the Microsoft.VisualBasic assembly that is marked with the attribute [EditorBrowsable(EditorBrowsableState.Never)] to prevent people from discovering it.

Here’s an example that uses my Late-Binding code to open an Excel Spreadsheet and convert it to a… Read More →

© 2013 Andy Edinborough. All your rights are belong to me.