LessThanDot Site Logo

LessThanDot

A decade of helpful technical content

This is an archive of the posts published to LessThanDot from 2008 to 2018, over a decade of useful content. While we're no longer adding new content, we still receive a lot of visitors and wanted to make sure the content didn't disappear forever.

There Is Never Time For ... (Part 2)

So we might have some idea on how to improve our skills and knowledge, but it still takes 20 minutes to find a specific switch in the cabinet, the last time a server lost a fan we didn’t find out until after it overheated, and we have no idea how many licenses we have purchased. And we’ll figure it all out right after I finish this next help desk ticket.

Read More...

Detecting Property Changes in an Observable Collection

Work, Work, Work I was working on a new interface this week for a rather complex item selection system. It deals with hierarchies and mandatory selections, multi-selects and single-selects. In order to make it easier for users to see what items were already selected, there was also a list of just the selected items. Oh ObservableCollection, I See You! I toyed around with a few different options, and debated some of them out with Adam, and finally decided to run with binding and an Observable Collection.

Read More...

MongoDB vs. SQL Server – INSERT comparison part deux

Lee Everest created a post named MongoDB vs. SQL Server – INSERT comparison where he compared inserting 50001 rows with MongoDB vs. SQL Server. So he claims that MongoDB inserts 50001 rows in 30 seconds while the SQL Server one takes 1.5 minutes. Okay so I looked at this SQL Script and can make 2 improvements First create this table CREATE TABLE MongoCompare (guid uniqueidentifier ,value int ) GO Here is the script he used.

Read More...

Delay Validation with SSIS Tasks

Delaying the inevitable Over the weekend a new SSIS package put into production had failed several times. Upon reviewing the package the problem was due to a Send Mail Task causing the entire package to fail. Even knowing the Send Mail Task was a non-critical step in the entire process flow of the package; the task prevented and collapsed the entire process. This error and step was found due to logging being setup on the job.

Read More...

Getting the physical device name and backup time for a SQL Server database

There was a need to create a job that would take the last backup from one server and restore it on another server every day at 5 AM. There are a couple of things you need to know before you do that; some of these things are: permissions, what is the file name of the last backup, are there any jobs that need to be stopped and disabled before you restore etc etc.

Read More...

Techdays 2010

Techdays 2010 For the last 3 days (March 30 – April 1) I was at Techdays 2010. This was the first tech conference I have ever been to, but I enjoyed it. I was however saddened by the low amount of attention to VB.Net and the complete lack of attention to Windows Forms. I went to the following sessions. I will give a short review for each session. I will have lots to blog about.

Read More...

Generic Object Pool

Recently I was working with some socket programming using the SocketAsyncEventArgs class. When writing high performance .NET code it is a good idea to keep object creation to a minimum. Instead of creating a new SocketAsyncEventArgs instance every time an action was performed I decided to put together a simple generic object pool. I hope you’ll try it out and leave me some feedback. /// <summary> /// Represents a pool of objects with a size limit.

Read More...

A Simple Parallel.ForEach Implementation in .NET 3.5

In an application I’m working on, I had a need for a method to write a single object to several Lucene indexes in order to support different types of searches. I ended up with a method that looks like this: public static void Accept<T>(T to_be_indexed) { var indexers = StructureMap.ObjectFactory.GetAllInstances<Indexer<T>>(); foreach (var x in indexers) { x.Index(to_be_indexed); } } Simple enough. Because of all the disk I/O involved, it seemed like this would be a good candidate for processing concurrently.

Read More...

There Is Never Time For ... (Part 1)

There is never time for training, or to make sure the servers have the right background image, or to make a monitoring script to send emails when certain schema changes occur in the database, or to improve the feedback loop on quarterly goals, or to change that dreadful change management form to streamline the process. Unfortunately the deep, dark secret is that in 6 months we’re going to be saying the same thing, “There isn’t time now, we’ll do it later”.

Read More...

Internet Facing Reporting Services Instance

For my part-time job I was tasked with the job to create an instance of Reporting Services that is accessible from the internet. After about a month of trial and error, I was able to get the set up to work. However, I didn’t save any of the configuration settings or links that I used while setting it up, so I’m very fuzzy on the details of what I did.

Read More...