Andy Edinborough

ALL YOUR BASE ARE BELONG TO US

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 →

Duck-Punching the jQuery UI Datepicker into a Date/Time Picker

Posted on June 23, 2010 in Code    Tagged datetimepicker datepicker jquery Tweet This

There are a TON of awful date pickers out there.  For a who’s who of the worst, check out Date Time Picker Competive Analysis.

jQuery UI’s Datepicker control is by far the best looking and most intuitive picker.  In light of maintaining a uniform UI, I wanted a date time picker that played on that control.  I found two:

  1. http://blog.w3visions.com/2009/04/date-time-picker-with-jquery-ui-datepicker/ – Integrates with Datepicker, but the UI is completely disjoined.
  2. http://engineeredweb.com/blog/10/4/jquery-date-and-time-pickers – The first one listed here is the one I had been using.  It integrated nicely with Datetpicker, but the author’s website is down now, and I found it was quite bulky and that it limited how you could use Datepicker—no inlining, no animation, etc.

So I created a duck-punched DateTimepicker that simply manipulates the Datepicker DOM element and functions to add the missing functionality:image

As you can see, I also added the ability to specify custom buttons… Read More →

Beautiful PNG Wait Indicator with Raphaël and jQuery

Posted on April 16, 2010 in Code    Tagged raphael jquery svg png Tweet This

UPDATE:  Please don’t read this post… It’s actually kind stupid.  :/  Now that IE supports 2D CSS tranforms, there are betters ways of handling this.

 

Can you believe that in 2010 we are still stuck  with using animated gif’s?  They support transparency, but not the alpha-channel.  So when you need to create a wait indicator that won’t have a specific background, you’re stuck with a pixelated look.

Recently, I wanted to create a beautiful wait-indicator to display while AJAX was loading.  I wanted to use PNG, but animated PNG’s don’t have wide support yet. Furthermore, PNG’s are fairly large, so an animated one would be orders of multitude larger.  I thought, “This is silly.  This is the image I want. ROTATE IT!”.  Seriously, what year is this?  1996?!

Enter Raphaël:

Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web. If… Read More →

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