home · blog · groups · about us · contact us
DevelopmentNow Blog
 Friday, December 08, 2006
 
 

One of my clients has employees across the country at their clients' offices, and sometimes users at a given location report that their connection to the company web site is slow. To assist with troubleshooting, I usually have them first run a bandwidth speed test at SpeakEasy and/or SpeedTest.net. I have them choose a test server closest to where the company web site is hosted (in this case, Chicago). Several times in the past the speed tests would demonstrate a slow connection, and we'd then be able to start troubleshooting.

That doesn't always resolve the issue, though -- sometimes the speed tests would be fine, but access to the site would still be slow (again, only for those locations). I recently found another free traceroute tool to help diagnose connection issues between the user and the web site. I prefer web-based tools since oftentimes the user doesn't have rights to install desktop bandwidth monitoring tools.

I've thought about putting a speed test on our web server itself. You can actually host SpeedTest.net's speed test for $400/year, or Visualware's MySpeed speed test for $250/year.

I found one or two free tests that you can seemingly host, but they were java source code & required linux. I suppose making a very simple Flash-based speed test wouldn't be too hard -- download some uncompressible files (like ZIPs, JPGs, MP3s) from the web site and measure how long it took to download them, then display the results. For the upload test, generate some data, POST it to the server, and measure that upload time (either on the client and/or the server). Or I guess one could do the same thing using AJAX, too, maybe.

December 8, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Wednesday, December 06, 2006
 
 

Installing Subversion & TortoiseSVN

James Kemp posted a guide to installing Subversion on Windows. Unlike most guides on the net, his is pretty up to date.

Note that when it comes time to install svnserve as a service, just use this command line instead of James' longer steps:

sc create svnserve 
binpath= “\”C:\Program Files\Subversion\bin\svnserve.exe\” 
–service –root c:\pathtoyourrepository” 
displayname= “SVN Server” depend= tcpip

Note that the above command should be done all on one line -- I just broke it into multiple lines for display purposes. It also assumes you installed Subversion to the default location.

TortoiseSVN is really easy to install, & adds right-click context menus to Windows Explorer so you can perform SCM commands.

Once you have Subversion & TortoiseSVN installed, you can perform checkins, checkouts, branches, merges, etc. with wild abandon.

Integrating with Visual Studio

If you want to integrate Subversion with Visual Studio, you can use the AnkhSVN Visual Studio Addin. However, be warned that AnkhSVN isn't fully released yet (it's on RC4). In fact, reading the blog of one of AnkhSVN's developers, statements like "renames and deletes were very buggy", "a number of Ankh error reports had an AccessViolationException", and "I was pretty shocked to see that we do in fact delete files when Exclude From Project is invoked" kinda scare me. IMO you should probably treat it like a beta product for now ... you don't want to lose vital source code.

So...while I like the idea of Visual Studio integration, I just can't have a lot of bugs, crashing, and surprise deletions on source code. I'll just stick with TortoiseSVN for now (which is easy enough to use, just switch to Windows Explorer, make a few clicks, then switch back to Visual Studio).

December 6, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Monday, December 04, 2006
 
 
I just posted an article up on CodeProject about ASP.NET's machineKey. Feel free to check it out & comment.
December 4, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 

FireBug, that awesome javascript/css/ajax/dom debugger plugin for Firefox, has a new version out. Blurb from their landing page:

Firebug integrates with Firefox to put a wealth of development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.

Just the way you like it

Firebug is always just a keystroke away, but it never gets in your way. You can open Firebug in a separate window, or as a bar at the bottom of your browser. Firebug also gives you fine-grained control over which websites you want to enable it for.

Learn more

Inspect and edit HTML

Firebug makes it simple to find HTML elements buried deep in the page. Once you've found what you're looking for, Firebug gives you a wealth of information, and lets you edit the HTML live.

Learn more

Tweak CSS to perfection

Firebug's CSS tabs tell you everything you need to know about the styles in your web pages, and if you don't like what it's telling you, you can make changes and see them take effect instantly.

Learn more

Visualize CSS metrics

When your CSS boxes aren't lining up correctly it can be difficult to understand why. Let Firebug be your eyes and it will measure and illustrate all the offsets, margins, borders, padding, and sizes for you.

Learn more

Monitor network activity

Your pages are taking a long time to load, but why? Did you go crazy and write too much JavaScript? Did you forget to compress your images? Are your ad partner's servers taking a siesta? Firebug breaks it all down for you file-by-file.

Learn more

Debug and profile JavaScript

Firebug includes a powerful JavaScript debugger that lets you pause execution at any time and have look at the state of the world. If your code is a little sluggish, use the JavaScript profiler to measure performance and find bottlenecks fast.

Learn more

Quickly find errors

When things go wrong, Firebug lets you know immediately and gives you detailed and useful information about errors in JavaScript, CSS, and XML.

Learn more

Explore the DOM

The Document Object Model is a great big hierarchy of objects and functions just waiting to be tickled by JavaScript. Firebug helps you find DOM objects quickly and then edit them on the fly.

Learn more

Execute JavaScript on the fly

The command line is one of the oldest tools in the programming toolbox. Firebug gives you a good ol' fashioned command line for JavaScript complete with very modern amenities.

Learn more

Logging for JavaScript

Having a fancy JavaScript debugger is great, but sometimes the fastest way to find bugs is just to dump as much information to the console as you can. Firebug gives you a set of powerful logging functions that help you get answers fast.

Learn more

December 4, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 
Development is switched over to a new web server, so if you see this post, you're on the new box. Lucky you!
December 4, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Friday, December 01, 2006
 
 

position:absolute had a post about the new Opera Mini Simulator, and I must admit it work really well. Now granted you can also download normal the Opera browser & run it in "Small Screen" mode, but the simulator seems better.

December 1, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 

Found another big list of accessibility checking tools at NSCU. Maybe I should start making a comprehensive list. Or a wiki. Or a delicious link set. Or something. Anyhow...

Fangs, a Firefox plugin, is interesting. I tried it out. Basically it displays a text version of your site similarly to how JAWS (the most popular screen reader) would read it. So it helps you look for a bunch of repetitive stuff, etc. It's not perfect, though, but nice for a quick page check.

Google Home Page
CropperCapture[3].Png

Fangs' "intepretation" of google.com would be read by JAWS
CropperCapture[4].Png

Fangs' list of links (similar to JAWS' link list)
CropperCapture[5].Png

 

December 1, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 

Scott Mitchell has a new article on 4guys about using the ASP.NET CSS Friendly Control Adapters. Using them causes standard ASP.NET controls to basically use fewer tables for layout, and instead use more lists, divs, and "proper" tags for layout & markup. The adapters also cut down on in-line styles, allowing you to keep layout in a CSS file where it belongs.

And all that means better accessibility, cleaner code, and fewer laughs of derision from your Mac-toting designer friends who say things like "Yuck, Microsoft .NET is le glos poulet laid, look at all those tables!" and then they refer you to their hipster CSS blogs. Well, look who's laughing now!

December 1, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [1]



 
 
MIT has a cool timeline widget under open source.

Unfortunately I can't really stick it inline here, but you can visit the link to check it out.
December 1, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Thursday, November 30, 2006
 
 

In the past I blogged about cheap easy offsite backups. Back then I wasn't really looking at Amazon's S3 (Simple Storage Service), but now I realize that it might make for a nice additional backup. I'm still using Mozy for images and videos, but I'd like a better place to store my database dumps, etc than uploading them via FTP to an ISP.

Joseph Scott has an interesting post on comparing storing files on Dreamhost vs S3. One thing I think he's leaving out is the chance that if you fill up your 200gb account at Dreamhost, they might not like that. Jeremy Zawodny has a list of S3 backup tools -- be sure to read the comments for other suggestions, too.

November 30, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [3]



 Wednesday, November 29, 2006
 
 

Maybe you've seen some of the new cool web sites that automatically let you import people from your Outlook, Yahoo, Gmail, or other contact lists. That way your users don't have to remember or type in their friend's email addresses ... they just pick from an imported list.

Well I noticed that Plaxo has an Address Book Widget you can embed in your site that allows your site visitors to import contacts from Yahoo, etc. It would probably take you under an hour to implement on your site.

widget screenshot

FYI, the widget is free, but it contains a link to Plaxo.com.

ASP.NET | Code | Web
November 29, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Tuesday, November 28, 2006
 
 

Ran across this post from Chris Fulstow on 10 free tools for Visual Studio. And then of course there's the 10 Must-Have Visual Studio Addins on MSDN. And Scott Hanselman's Ultimate Tool List (does the guy ever sleep?).

Since it's tool overload, I'm going to try out three:

WinMerge

WinMerge is a free diff/merge tool. Sure, Beyond Compare is awesome, but it's not free. And I like free. See how WinMerge points out exactly what's different in the lines, rather that just saying "hey these two lines are different somehow." I think that's awesome.

GhostDoc

Ok, I figured out what GhostDoc does. It doesn't generate a help file for you (like I thought when I first read the name) ... it just auto writes the triple-slash XML Documentation comments for you, based on reflection and naming inspection. I usually write summaries for all my methods, but I leave the overridden methods undocumented and let the documentation tool copy the comments from the underlying type. But it's cool that GhostDoc will do that, too. I also don't usually write comments for my method parameters since they're often obvious enough from their name or from the method name (e.g. AddTwoNumbers(int firstNumber, int secondNumber) -- what's your guess on what the params are for?). But I like that GhostDoc will give those documentation anyhow. It feels more "complete" I guess. And definitely makes the generated help files look more professional. The below example is all auto-generated comments.

/// <summary>
/// Appends the HTML text.
/// </summary>
/// <param name="htmlProvider">The HTML provider.</param>
public void AppendHtmlText( IHtmlProvider htmlProvider )

FxCop

We'll see how this one turns out. FxCop inspects your compiled assemblies and lets you know if it has sucky design, naming, performance, security, or localization. I certainly don't expect it to be gospel, but it's probably nice to help point out stuff you've missed.

November 28, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 

Mads Kristensen posted an article about an HttpModule to move ViewState to the bottom of the page. It's based on Scott Hanselman's similar blog post.

The nice thing about moving ViewState to the bottom of the page is spiders don't have to sift through it, which means potentially better spidering and search engine ranking. Another benefit is that your page may render faster on browsers since more of the visible HTML is retrieved sooner.

I like the idea of making an HttpModule out of it, because then you don't have to have a custom Page class or anything .. you can just drop the HttpModule into any project & it starts working. Assuming it doesn't have huge bugs, of course. :)

November 28, 2006    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]