a window into my world.

AutoMute Windows Service

by Benjamin Anderson 5. April 2009 18:59

I’m releasing the first version of the AutoMute Service, which will automatically mute and unmute the sound on a Window’s computer when the session is Locked and Unlocked.  This is incredibly useful for the computer at the office when you’re listening to music on your headphones and often forget to pause or mute the music when you walk away.

More info can be found here

Tags: , ,

Categories: Programming | .NET

Become a Better Programmer: Use the Trash Can

by Benjamin Anderson 2. March 2009 12:32
A very nice take on the world of development:


Categories: Programming

CSS references

by Benjamin Anderson 13. February 2009 18:27

Today I checked the loading speeds of my site and blog.  Both are very fast, but I discovered a problem that could, and in some browsers does, slow down the site loading.  I found out that the references to images in my CSS files weren’t corrected, and since I have a custom 404 page for the blog, every single bad request loaded the 404 page.  This shouldn’t be a problem for smarter browsers, but it does take time for the browser to check those bad references, and in some cases it can cause recursive references to bad references.

So, be sure to check you’re CSS references and use services like Pingdom’s Full Page test:


Categories: Programming

Creating an Outlook My.Blogs Managed Code Add-in

by Benjamin Anderson 30. January 2009 17:42

This is actually a little old, but the examples and information are pretty cool for anyone wanting to add RSS and blog support to their .NET application.

Creating an Outlook My.Blogs Managed Code Add-in

Tags: , ,

Categories: .NET | Programming

Is it time to get good at functional programming?

by Benjamin Anderson 5. December 2008 18:42

Dr. Dobbs had an article posted this week about the need for a larger and greater understanding of functional programming in order to correctly develop and program in the emerging parallel environments of the future.  With every chip manufacture adding more and more cores to their processers in order to increase the throughput of their platform.

While I understand where the article is coming from, I don’t agree that FP is the future.  FP has a very distinct and and specific field of use in areas where processes can be cleanly defined and work in a workflow without interruptions.  The majority of applications that will need to take advantage of the multiple cores and multi-threading will have to be done through threading and standard stateless functional systems, due to the nature of the software.  Information services and data models can fit into FP models, but the processes and user interactions can’t be crammed into a singular workflow.  Things that depend on a stand dataflow will work great for FP on multi-core systems, but stand data flows cannot encompass a user.

Introducing the human into the mix severely limits the ability to solely develop in a FP model without becoming extremely inefficient.

There are several efforts to make functional languages a mixture of state-full and stateless to make them more efficient and allow for better management of exceptions, errors and the human user, but there is still a lot of work that has to be done and even more techniques and methods to be learned and used before the changes can work their way our of research and academia.

MS has been doing a lot of research in this area for F# and other functional areas, and Brian Beckman discusses some of those things on the Channel9 site in a two part interview. Part 1 Part 2

Tags: , , ,

Categories: Programming | theory

Finding a .NET CMS

by Benjamin Anderson 8. March 2008 21:15

What’s available and what do I really need?

There are hundreds of Content Management Solutions out there, and a lot of them just blend in with each other.  I’ve been looking for a nice one that I could host for our wedding website, but in the process I’ve also been evaluating what is available from the perspective of providing services and solutions to clients and other customers.

I currently have Community Server up on our wedding website… It’s not anything like I’m looking for.  The theme controls are nice, and the blog and file management is descent, but as far as CMSs go, it is not a CMS.  It’s a blogging and forum solution, and is severely lacking is content management.  This shouldn’t be a big surprise since its name is Community Server, but it completely lacks the concept of a primary shared site area.  The pages are either part of a blog or part of a forum.  That just doesn’t suit the needs I have.  So, what are my needs?


  • Simple enough that my fiancee can edit and update the pages any time she wants without my supervision or support.
  • Open Source
  • .NET based (it is hosted on a Windows server, which does not have PHP support)


  • Easily themable
  • Large Community support
  • C# based (I just prefer to work in C#)
  • Easy theming system and customizations after applying a theme or skin

Solutions that I’ve found so far:

My review and input on these systems after the break.



Umbraco is one of the open source projects hosted on Codeplex, and has been my favorite to work with.  It doesn’t have a large community support quite yet, due to it’s age and to some technical limitations, but it does have a great theming system and modular plug-in and enhancement support. 


The backend, while taking a little time to get used to initially, is easy to use and simple enough that my fiancee wouldn’t have had any problems working with it to add content.  All components of the templates, pages and plug-in are easily modified and formated since they are heavily XHTML and CSS2.0 compliant.

So, what is the drawback?  It can’t be hosted on shared hosting unless your host configures the medium hosting security or used low or no security restrictions for their shared hosting accounts.  So, on Godaddy, where I have our site hosted, the CMS will not run correctly.  In fact, after getting it working after removing parts and disabling things, you can’t work in the CMS backend because one of the crucial components for the UI is one of the assemblies that cannot run within the medium hosting environment.  It’s really quite a bummer, especially considering there are several UI components that could be used and hosted on a medium setting shared host without any complication and still provide the same functionality.



One of the oldest and most widely used CMS and Portal systems.  DNN has been around for what seems like ages, and as a result it has a lot of user and community support.  Unfortunately there aren’t any great resources that are free that are all that dependable any more, at least that I could find.  I will admit I didn’t search as hard for support for DNN as I did for other CMS solutions simply because of my experience with DNN in the past.  I’ve used it, I’ve developed sights that use it, and I’ve heavily modified and enhanced DNN based sites before, and every experience left a very bad taste in my mouth.


It may have changed since the .NET 1.1 days of DNN, but with as large of a code base as DNN has, I seriously doubt it.  Despite my displeasure in doing so, I gave it a try since it is one of three .NET applications available through Godaddy’s software library.  It did not stay on very long.  I ended up replacing it with the final solution, which will be discussed at the very end.

Graffiti CMS

Graffiti CMS is another one I really enjoyed.  Unfortunately I came across it after I had already done all the work on the site for a specific solution. 


The system as a whole is very user friendly, and very easy to modify the themes.  It isn’t as easy as I’d like to create a new one from scratch though.  You have to import everything into the CMS so that it can convert the images into XML to save the theme.  But this is only a slight drawback during initial site design and redesign.

I probably would have gone with Graffiti had I found it earlier.  I will definitely keep it on my list for future projects.

Basic CMS

Too basic… Good for a start, but overall pretty much non-existent.  Does not provide a WYSIWYG interface and appears very crude in overall design.



Vine Type

This one looks interesting but ultimately I didn’t research it much due to the lack of information.



N2 is another one I found to late in the game.  It looks very nice and provides plenty of features.  I’d probably use it.  The back end interface is very nicely done and would have worked perfectly for my needs.



Digimaker just didn’t groove with me.  Something about it turned me off to it from the very beginning.  I think it had a lot to do with the cluttered information pages.  Rather than being informative and inviting, it all appeared very deceiving and too commercial, if that can be a bad thing.  The page just felt like it was trying to sneak something in with the deal.


When I first investigated Digimaker, I did think it would work for my needs, if not for this project, but for future ones.  Aside from the project’s site, I don’t have anything negative to use to judge against this project.

Luigi Corrias’ CMS Project


This one looks like a good starter project if you want to build it from scratch and customize the project.  It already has several good feature, but still a very young project.


Cuyahoga is really a website framework.  It has a lot of components for a CMS, but you still have to craft, develop and design the sight.  This is another great project to follow if you are wanting to build custom applications and CMS solutions for customer or yourself.


Another Codeplex project.  It has several great features, and looks like something worth watching.  At the time it wasn’t mature enough to meet the needs for this project, but it had enough merit to warrant being put of the watch list.


Beer House Starter Kit

One of the original starter kits for ASP.NET 2.0, Beer House, is a cross between a CMS and an e-commerce site, which is reality, most sites should be or will be.  It provides a great basis for learning and understand CMS and e-commerce work flows and design.



Final Solution?

My final solution due to time and all the complication I ran into was a re-skinned Screwturn Wiki.  Not a CMS.  This doesn’t meet my needs in two of the three primary areas, but it worked and I was able to get the site up in a skeleton state in a couple of days.  The wiki isn’t intuitive to edit for non-technical people.  A WYSIWYG interface would be much better, but it’s not difficult to pickup or use.  It wasn’t easily themable or skinable due to the complete lack of skins and support available in the community at the time.  This doesn’t mean it was difficult to modify.  As I stated, I went with this solution due to time constraints and ease of implementation.  Screwturn Wiki is also a great code base, and can easily be extended, enhanced and modified with very little time and effort. 


After the wedding though, I will use one of the other systems on the list, especially since I won’t be rushed to get the sight up.  The wedding site will remain up for a while and then I can take the needed time to properly implement a CMS system that my wife will be able to edit and change the more persistent data related to our lives that doesn’t really fit a blog format, since we already have a blog.

Tags: ,

Categories: Programming | webhosting | .NET | CMS

Splitter Problems

by Benjamin Anderson 14. May 2007 17:02

Another problem I’ve found, which is already known by MS, but hasn’t been addressed, is that when a minimal panel size is set in a splitPanel, if the SplitterDistance is less that the minimal size, and exception is through.  This is fine, except the splitterDistance is set after the minimalPanelSize and the ClientSize, so the exception is thrown, even though the code generated by both the Designer and manually should work.

Follow the link for the work around:

Tags: ,

Categories: .NET | Programming


I review for BookSneeze

About the author

Benjamin is a software developer in the DFW area.  He spends his free time playing video games, programming, doing graphics design and photography, and reading.

Month List

Page List

    Widget BookShelf not found.

    The file '/Blog/widgets/BookShelf/widget.ascx' does not exist.X