January 31, 2007

ASP.NET AJAX Source code

Microsoft released Server and Client Source code for ASP.NET AJAX 1.0.

I can not believe that this piece of art is available for public download. Get it here.

Through Galcho’s blog.

January 29, 2007

Database Refactoring in VSTE for Database Professionals

During my last session at Sofia.NET User Group, I talked about one book that describes many database refactoring patterns. The book is named Refactoring Databases - Evolutionary Database Design by Scott W. Ambler and Pramod Sadalage.
It is unfortunate the Visual Studio Team Edition for Database Professionals handles only renaming objects which is about 5% of the described patterns in the book. I had a lot of problems presenting this small percentage also, so I will try to put another post of how you can successfully use rename refactoring in VSTE for Database Professionals.

January 25, 2007

Amazing Show

This movie made me cry out of laugher three times in a row.
Watch carefully the first couple of minutes. The show is getting uncontrolled after that.

http://www.xuol.net/hosted_pages/Z4Y4keqTV6w

January 24, 2007

Sofia.NET User Group meeting

Today I will talk at Sofia.NET User Group about Visual Studio Team Edition for Database Professionals. I hope that we will have a good discussion on what common scenarios people are experiencing when they need to refactor and deploy a database.
The meeting will be held at the local Microsoft office at 18:30h. As usual - feel free to come and join us.
Here is the official announcement.

ASP.NET AJAX is now RTM

Microsoft ASP.NET AJAX framework is now RTM. Congratulations!

From the ASP.NET AJAX site:

With ASP.NET AJAX, you can:


  • Create next-generation interfaces with reusable AJAX components.
    Enhance existing Web pages using powerful AJAX controls with support for all modern browsers.

  • Continue using Visual Studio 2005 to take your ASP.NET 2.0 sites to the next level.

  • Access remote services and data directly from the browser without writing a ton of complicated script.

  • Enjoy the benefits of a free framework with 24x7 technical support provided by Microsoft.



Download ASP.NET AJAX

Download AJAX Control Toolkit

January 21, 2007

Windows Time error

My laptop was overheating for a few weeks so I decided to open it and clean it up.
Few lessons that I learned:
You can access almost all parts just by opening the bottom panels, detaching the panel that holds the keyboard and removing the keyboard. There is no need to unscrew all bolts just to clean the processor fan.
The processor fan can get pretty choked. In my case, about 80% of the fan vent was jammed and no air could pass at all. There is no way to see that until you open the laptop.
Write where every bolt place is. Now I have one spare one :)
My sound does not work too, so I have to open it again to see what I forgot to plug in (I did forget the plug the keyboard in first place :)).
Surprisingly, the laptop booted normally at the first time, but because of the unplugged battery my clock was not synchronized. I got the idea the Windows Time service will help me to synchronize the time automatically. I started the service, opened Date and Time dialog, Internet Time and clicked on Update Now button. After few seconds waiting I got the error “An error occurred getting the status of the last synchronization. The RPC server is unavailable.”. I tried restarting the service, unregistering and registering again but with no success. After 15 minutes of trying different options, I decided to manually set the time. Just for the experiment, I thought to check the update process once more, after I already set the correct time. Volla! The update process worked as supposed. It seems to me that the time synchronization does not work when there is huge difference in time. In my case the default time set to the computer was 01/01/2003. I think that’s why Microsoft named this service “Windows Time”. It is supposed to update time only, and it does not update date :))).

January 20, 2007

Internet Explorer speed up

I found how to improve in times the loading speed of my Internet Explorer. You know that during years of exploitation Windows and especially Internet Explorer gets clumsier and clumsier day by day. I reached the time now when I have to wait IE to load for about 5 to 15 seconds!!! This is really irritating for me. Few times I even forgot what I was going to start in IE.
I found by chance that there is a way to manage the ActiveX and Browser Helper Objects (BHO) in Internet Explorer 6.0. You can enable and disable them using the Add-ons manager located in Tools/Options/Programs/Manage Add-ons. In my IE there were 47 Add-ons! Imagine this – 47 DLLs are loaded in every single IExplore.exe process. Now I know the reason why my IE could not load more than 20-25 instances in one user session.
In the moment I instantly disabled all of them leaving only Fiddler, XML DOM Document 3.0, Google and Google Toolbar add-ons.
My add-ons list have many ActiveX objects for playing audio and video. There are two items for Windows Media Player, three - for Google, many - for Microsoft Office and different kinds of ActiveXs for various third party apps. And please note that I am not a fan of IE plugins and usually I am careful in preventing installation of such plugins. Image what this list will look like if I start to install every cool plugin that I found for IE.
After disabling almost most of the add-ons, my IE now loads for about 1sec. I have the feeling the Google Toolbar is a very badly written plugin, because disabling it makes my IE load for about 0.5 sec. Or it is just the way IE works when it has to create additional toolbar.
Nevertheless I think Microsoft should find a way to speed up loading of these plugins and isolate and provide better way for managing, versioning and isolating them.
This is a real life example how one good work done by Internet Explorer team, gets insulted by almost every Windows user on this world, just because of poorly written plugins.
Keep in mind that disabling add-ons can make some site inoperational for you. If this happens, you should enable the corresponding object again and restart IE.

UPDATE: I accidentally deleted the post. Now it is back, but the previous comments are lost :(. I will post them below.

Post by Angelarii
Great job. Apparently works for IE7 too, improved my startup time to less than a second!

Post by Stefan Dobrev
Google toolbar is not the safest add on you can install :) Look here http://www.google-watch.org/toolbar.html I'd prefer not to install it on my PCs.

Post by Martin Kulov
Well, I am not a big fan of Google toolbar either. The only think that I can not remove it, is because this is the only way to see Google's PageRank. I do not know any other way to easily display it on every page visit.

January 18, 2007

BASTA! conference

Recently I was invited to speak at BASTA!. My session is now approved so I am going to Frankfurt :) I will be speaking how to integrate Web and Performance Testing tools in Visual Studio Team Suite. I really like this session since it is level 300 or even 400. This is really the level where you can show advanced techniques for a technology and makes you spend endless nights in setting up and fine tuning the tools and enjoy that.

BASTA! is very similar to what we want to achieve with DevReach. The first issue of DevReach conference was awesome. My personal and Academy’s goal is that DevReach can have the same number of speakers and sessions as BASTA! in just couple of years. This will bring invaluable knowledge for the Bulgarian Software Developers.

I am really excited to speak at BASTA!. I hope we can see us there.

January 11, 2007

Fiddler and ASP.NET Development Server

Happy New Year my dear readers,
Thank you for reading my humble blog and I wish you all the best in 2007.

My promise for the next year is to keep you updated on almost all developer events that are happening in Bulgaria. There are a lot of places where you can find information about worldwide events, product releases and gossips so I will most probably not discuss them. Unless of course I have something really interesting to say.
I will keep posting problem solving techniques and various tips for diagnosing and resolving every day programming issues.
And I will continue pressing you to get involved in the up growing Bulgarian software development community.
There are many ways you can be involved.
Look for upcoming events of Bulgarian Association for Software Developers site, Sofia.NET User Group and IASA Bulgaria. Come to the next meeting that we organize and say that you what to be a member and what to help the community. We will be happy to have you. Do not miss the opportunities that are lying in front of you.

As part of my promise, I will now give you a great tip that I found by accident today.
If you know me in person, you will probably know that Fiddler is one of my favorite tools. And you will most probably know that I do not like the ASP.NET Development Server and usually teach all our students in the Academy how to setup and use IIS in their web projects. Today I found out that is extremely hard to use Fiddler and ASP.NET Development Server if you do not how.
The problem is that the ASP.NET Development Server accepts requests only when the address is using localhost or 127.0.0.1 and Fiddler can intercepts requests only when they are not using localhost or 127.0.0.1 but instead use the machine name for the request. This put us in really awkward situation until we find Hannes Preishuber’s post on how to configure Fiddler so that it changes every request automatically from machine name to localhost. However we still need to access the URL using server’s machine name. If you are a careful reader you will notice this awesome comment on his post which says that when you use “localhost.” (keep in mind the trailing dot) and the request will pass through Fiddler and then will go directly to ASP.NET Development Server. No change in Fiddler script is necessary. Beautiful!

Congratulations to all Bulgarians for joining the EU.
Let’s wish luck and courage to our innocent medics sentenced to death in Libya.