technology

Software to install on a fresh PC

Here is a list of the software I install on a new PC. This post is kind of similar to my tools list but its timely. I’m having some serious problems with my workstation at work. Visual Studio crashes when opening .JS and .ASPX file, my ODBC connection manager is, what’s the technical term, borked?, Even when defragmented, as much as can be in XP, it takes 86 seconds to delete a file and worst of all Songbird wont start!

  1. Visual Studio 2008 w/ SP1 and .NET Framework 3.5 SP1
  2. SQL Server 2008 Express with Tools
  3. TweetDeck
  4. 7-Zip
  5. Notepad++
  6. LINQPad
  7. Songbird
  8. ReSharper
  9. Chrome
  10. Firefox
  11. Firefox Addon – Web Developer
  12. Firefox Addon – Firebug
  13. Firefox Addon – YSlow
  14. Firefox Addon – FireCookie
  15. Firefox Addon – MeasureIt
  16. Firefox Addon – ColorZilla
  17. Firefox Addon – Delicious
  18. FeedReader
  19. SourceMonitor
  20. SnagIt
  21. Visio (I assume word, etc is already installed)
  22. Windows Live Writer
  23. ITunes
  24. FxCop
  25. Tortoise Svn
  26. FileBox Extender

Update, forgotten tools:

I do cocaine!

Doctor_RocksoIts often hard to explain the social web, web2.0 or whatever its called. but I think this presentation does a pretty good job.

Content Segregation is a bad idea

In the past, when building small web applications with up to a couple concurrent users, I’ve placed the database on the same system as the web server. Blasphemy!!!…not really. You see, knowing that database systems will entirely consume their allocated memory allows for clear capacity planning.

There are many factors that need to be taken into consideration when designing an architecture and for the sake of this post lets just say that:

  • This system does not require a ridiculous amount of memory
  • This system does not require HA

And really, while every project sponsor will tell you that their project requires the most powerful server ever built and for the sake of humanity can never go offline again, most web applications don’t require all that much memory…and the fate of the company is not dependant on 100% uptime…just check the SLA.

So what does this all have to do with “Content Segregation”? Oh, and WTF is “Content Segregation”?

Ok, ok, just one more paragraph to provide context.

Large web applications with high concurrent user counts will commonly separate not only content types across systems but also application modules. For example, there might be a small web server cluster for images or a separate group of servers for the account management modules (login, register, profile). These practices are commonly accepted and I couldn’t agree with them more. Its just that most of the applications I am involved with don’t require this type of advanced architecture even though the project sponsor would have you believe otherwise. These, not the large web applications, are those we need to discuss..

So what does this all have to do with “Content Segregation”? Oh, and WTF is “Content Segregation”?

Until recently performance and availably have been the only reasons I’ve recognized to separate content across physical servers. That is until just very recently, in a meeting of the minds it was stated, as fact, that “Items of content type X are data and should be stored on the database server”

WTF? Let me clarify, not IN the database, but on the database server file system..

Ok, I have my head around what you are saying, I understand that your an advocate of Content Segregation, I just don’t understand why, but I can tell you why not.

1. Performance

Database servers are commonly separate physical systems for performance reasons. The DB server should not be a dumping ground of user generated content. It might seem silly but there is a chance that you might really use the SQL server for something that requires its full power. Maybe some form of analytics and when that happens you need to have the available power.

2. Slippery Slope

I truly hate this argument but it fits so perfect into this context. Its not so far of a leap to go from storing images on the database file system to storing images in the database.

LINQ – Update Row – Primary Key

LINQ requires all tables that you work with to have a PK. If you don’t have a PK on a table you can use the designer to set a PK on the generated code. This won’t effect your database.

  • In Visual Studio open the LINQ Designer.
  • Select a row you would like as your PK and select properties.
  • Update the “Primary Key” Property.