Karl Seguin

Karl Seguin

Sponsors

The Lounge

Advertisement

  • An introduction to iptables

    iptables is a linux application that allows you to configure the built-in linux firewall. There are abstraction layers built on top of it, including nice GUIs, but I recently had some very basic rules I wanted to implement, and figured I'd learn how to do it directly in iptables. It turned out to...
  • Beyond web.config

    I recently needed a configuration mechanism which would detect changes without requiring an application domain restart. I also wanted to move away from XML. This is what I came up with (and hopefully I'll get some helpful feedback). First, we declare a ConfigurationData object which holds our actual...
  • Don't Use Try/Catch

    Exception handling has been talked about a lot over the last decade and a half. However, despite a general consensus on how to properly handle exceptions, a divide on usage continues to exist. Improper exception handling is easy to spot, easy to avoid, and is a simple code (and developer) quality metric...
  • The WebForms Rant

    Ever since ASP.NET MVC was announced/released, there's been a lot of talk about it with respect to ASP.NET WebForms. People want to know which technology they should use, and are likely confused by the fact that there isn't a consensus amongst respected developers with respect to which of the...
  • ASP.NET Performance - Part 3a - Better Cache Busting

    There have been some good, informative, comments to this series. One in particular, from Dan Sargeant , deserves to be addressed directly - in large part because its something I overlooked but need to implement, so I might as well share the code. Dan points out that my cache busting technique has a fatal...
  • You should know Linux

    Its hard to get everyone to agree on what core competencies developers should have. I've long believed that knowledge of C is fundamental to becoming a great developer. Actually, C in general, memory management, pointer arithmetic, and basic hardware (interupts, scheduling, ...) more specifically...
  • ASP.NET Performance - Part 5 - Nginx

    The previous parts of this series focused on small pieces of code we could use to maximize real-world performance - largely based off of YSlow recommendations. In this final installment we'll think outside the box (literally) by placing a reverse proxy infront of IIS to get the most bang possible...
  • ASP.NET Performance - Part 4 - CDN

    In part 3 we created three helper functions to use when including css, js and images in our pages. As you might expect, YSlow has something to say about how to maximize the performance of such files beyond caching. Specifically, YSlow makes the following three recommendations: Use a Content Delivery...
  • ASP.NET Performance - Part 3 - Cache Busting

    In part 2 of the series we looked at ways to tweak our headers to maximize performance. One of those tweaks was the addition of far-reaching expiry headers for static files (images, css, js). What happens though when you need to change those files? We can make a change to the file on the server, but...
  • ASP.NET Performance - Part 2 - YSlow

    In part 1 we looked at integrating a javascript compressor as part of our build process to shrink javascript files for production (at the time, I didn't realize that it would lead to a series). Its worth mentioning that if you go down that path, you should really also merge all your files together...
  • Eschewing Date Types in our Database

    About a month ago, I found myself transforming data for the reporting portion of our application. Like many reporting systems, ours works off of date ranges, with statistics grouped together by the day (and a few by the hour). An early prototype made heavy use of TSQL Date functions (like DateAdd and...
  • Postgresql - Day 2

    My migration from SQL Server to PostgreSQL for an upcoming project continues. On day 1 I managed to get the application up and running quickly, thanks to NHibernate. Ayende was kind enough to post some advice to minimize the already-few problems I ran into (I've since implemented the ISQLExceptionConverter...
  • Migrating to Postgresql with my friend NHibernate

    Last night I decided to accelerate our plan to migrate from SQL Server to PostgreSQL and gave it a quick attempt to see what the work involved was. I was hoping that due to our usage of NHibernate, and by having meticulously written database agonistic code the migration would be cake. Turns out I was...
  • Time for a New Computer

    A couple weeks ago I bought a new computer. While my existing computer still had a lot of life in it, I was eager to laverage the power of the solid state drives (SSD) - specifically Intel's 2nd generation X25. I figured that since I'd be updating the hard drive and installing a new OS (Win7...
  • Unit Testing - Do Repeat Yourself

    Writing effective unit tests is as much about the test itself as it is about the code under test. All the experience in the world isn't going to help you write clean and meaningful tests against highly coupled code. Conversely, complex and messy unit tests don't add any value even if the code...
1 2 3 4 5 Next > ... Last »