Saturday, September 02, 2006

Traffic condition on Virtual Earth

While checking something on VE, I suddenly saw a new tab on the screen - "Traffic".

For Americans, this service is the life saver and they are so used to it. On my last trip to Seattle, we were on the road with a friend of mine and he wanted to know which streets are blocked so that he can better plan his route. Well, couple of clicks on his Pocket PC and voila - you see full fledged map showing you which streets have heavy traffic, or incidents, etc. I really wish we have this service down here in Bulgaria - it is really very useful.

Wednesday, August 23, 2006

Web control library project in Visual Studio 2005

Today I wanted to create a custom ASP.NET 2.0 control (not to be mistaken with Web user controls a.k.a. ASCX controls). For this reason, in Visual Studio 2003 I used to create a stand-alone Web control library which actually contains the new custom control (s). Because the whole Web project base is changed in Visual Studio 2005, you won't find a "Web Control Library" project in New Web Site dialogue. Finally I made it through! This project type is now located in Windows section - point to File | New | Project ... and choose this project as shown on the screenshot below:

And now you can start add your custom controls to the Visual Studio 2005 Toolbox by right-clicking on the specific tab. Then select "Choose items.." from the context menu. In the ".NET Framework Components" tab, locate the assembly file of your Web control library and choose the controls you want to use. And that's it ..

Google Calculator

Today I had to convert quickly from pounds to kilograms. Hence, I hit the Internet to see what the aspect ratio is between those two measurement units. I was really nicely surprised by Google, which provides a service called "Google Calculator" (link). Using it, you just have to type "1 pound in kilo" in the search criteria and you are all set! It is really small things that make people happy :-)

Thursday, August 17, 2006

CopySourceAsHtml add-in for Visual Studio 2005 / 2003

Yesterday I was writing a post and I wanted to send some sample code. However, it would have been great if the code keeps the formatting which it has in Visual Studio 2005. That said, I searched for an add-in and I found this one - CopySourceAsHtml (link). The most important one - it is free. So far it seems to be working nicely and integrates really seamlessly with VS2005. It also has version for VS2003 (for those of you who are still using it :) ).

Wednesday, August 09, 2006

ASP.NET 2.0 Tips, Tricks, Recipes and Gotchas (on ScottGu's Blog)

I found this very interesting post about ASP.NET 2.0 tips & tricks. Not surprisingly it is on ScottGu's blog - the ASP.NET 2.0 guy :). Really, lot's of valuable hints, resources, best practices and advanced topics can be found there. A must-read article for every ASP.NET 2.0 developer.

Thursday, August 03, 2006

Review: Flock browser

Today I ended up on this cool piece of software. Its name is Flock and is currently in beta. Basically, it is a new generation Internet browser, which has very handy integration with many famous Web services. It is based on the Mozilla technology. Although it is still in beta, I find it pretty stable. What I most like with it is that it has seamless integration with some popular Web 2.0 services like Flickr, Blogger, del.icio.us, which I personally adore. Actually, right now I am writing this post from the Flock browser itself, which on the other side will communicate with Blogger to publish the post.

What gives me the integration with del.icio.us? Well, I have tons of bookmarks and I am working on 3 machines - one at home, one at the office and my personal notebook. So I am indulged to sync my links among all these machines, which is really very tedious and boring task. Flock solves this using the del.icio.us service, which among all provides bookmark management to its clients. And it is free :)

Another story is the heap of pictures I got. I am currently using Yahoo!Photos for this purpose so every time I want to publish new album and pictures, I have to login there, create a new album, drag & drop the new pictures, etc. Now, I can to this with couple of clicks and drag & drops :) That is because Flock uses Flickr for photo management, which collaborates with Yahoo!Photos. Simple as that.

Well, the history shows that each Internet browser has it own particularities in regards to page rendering. Because my experience so far with Flock is not that much, I can't say whether it working sound. I read that it is based on Mozilla technologies so provided that most pages try to be compatible with Mozilla I guess that there won't be any problems. But will see ..

If you want to try out this browser, just go to its page and download it [link].

Thursday, July 13, 2006

Internet Explorer Developer Toolbar

Oh my! Today I found something really useful, something that I've seen for FireFox, but never so far for Internet Explorer. We are currently creating AJAX applications and we usually need some tools in order to see how is a given page rendered, how it will look like on 800 x 600 resolution, validate CSS and HTML, etc. As I pointed out, so far only the FF developers could benefit of such toolbox, but not anymore!

I tried Internet Explorer Developer Toolbar which is all this about. Among its features you will find:
-- Validate HTML, CSS, WAI, and RSS Web feed links.
-- Explore and modify the document object model (DOM) of a Web page.
-- Locate and select specific elements on a Web page through a variety of techniques.
-- Display image dimensions, file sizes, path information, and alternate (ALT) text.
-- Selectively clear the browser cache and saved cookies. Choose from all objects or those associated with a given domain.

Currently, it is in Beta 2 and is free. You can download it from here. Enjoy!

MSDN Webcast: What I Wish Developers Knew About Writing Queries in SQL Server 2005

MSDN Webcast: What I Wish Developers Knew About Writing Queries in SQL Server 2005 (Level 200) (link)

This webcast is really a masterpiece - that's all I can say about it. It really gives you a very good understanding how to diagnose and tune up your applications using SQL to manage their data. I also share the view of the author that there are many software developers that don't have this specific knowledge about writing effective SQL queries, probably because they haven't experienced performance hits. So far, I have projects behind my back where we had to squeeze out every possible second out, because of huge data load and requirement for good performance. I really know what SQL Server Profiler can do, and I really love it!

So this Web cast will give you a really very good idea and real demonstration how you should diagnose and tune your SQL queries so that you have optimal database performance. Highly recommend it!

Wednesday, July 12, 2006

SQL Server 2005 and Visual Studio 2005 integration - good demos

Today I ended up on these very cool demos. I usually like a lot that kind of quick HOWTOs, which are straight to the point and give you a good overview of the possibilities that bring you a given technology piece. Well, the demos I found today are really like that - most of them are like 5 to 7 minutes long, but give you a clear view of how to do the things. Nevertheless, I bet that you won't become a MSSQL 2005 guru after going thru all of them, but they will give you a good foundation what to expect from the collaboration between Microsoft SQL Server 2005 and Microsoft Visual Studio 2005 (from developer's perspective).

Anyhow, here is a link where you can view or download the content for offline browsing - SQL Server 2005 Developer Productivity Guided Tour [link].

Here is a quick overview of what this tour includes:

1. Web Application and SQL Server Database Creation (4 min. 34 sec.)
- Creating a New Web Application
- Adding a SQL Server Database
- Inspecting the SQL Server Database
2. Database Schema Creation and Data Input (6 min. 52 sec.)
- Creating Tables With the Database Diagram Designer
- Modifying Tables with the Table Explorer
- Populating the Tables with Test Data
3. Data Access via Stored Procedures and User-Defined Functions (7 min. 49 sec.)
- Creating a Stored Procedure
- Creating a User-Defined Function
4. Data Access and Data Binding in Web Applications (5 min. 41 sec.)
- Adding a New Form to a Web Application
5. Web Application Debugging (6 min. 23 sec.)

Wednesday, July 05, 2006

Mr. Eric Rudder live!

Eric Rudder - the VP of Development & Platform group from Microsoft is here in Sofia right now. I was lucky one to be able to participate in a live meeting with him in the office of Microsoft Bulgaria. We had a very open conversation and discussion over what's been around and what's hot in Microsoft world. We touched base on WCF, because one of its PM leads were there two - I was very nicely surprised to know that he is Bulgarian - I am so proud, because the guy really looked very knowledge :-). To me this was very interesting conversation, because as I already told you my master thesis was about distributed transactions and more specifically WS-AtomicTransaction and WS-Coordination, which are supported by WCF. I shoot couple of questions at the PM live and we decided to continue our conversation off-topic with the details I was particularly interested. I wanted to know more about the types of distributed transactions WCF supports. The theory defined many different types, but among them the most important ones are the flat and nested/hierachical transactions. Another one was about WS-BusinessActivity. It is interesting to know whether this specification will be implemented as part of WCF or will be in WF. I was told that WS-BA is not of topmost priority right now, because they are putting more effort into making WCF and WF collaborate together. Will see!
Eric Rudder is for sure a very versatile person. I personally like the fact that he has developer background but he also has very strong business feeling for sure. It was really great to see how passionate he is about software and technology! Obviously he has a very versatile knowledge and look in software industry. For example, we talked about SAP technology and how it compares to Microsoft technology stack. I actually pose him the question - "How would you convince me to use Microsoft technologies instead of SAP?". This was a tricky one :) . But he managed to explain us the pros and cons of both solutions and how Microsoft think can position itself thru the verticals as opposed to SAP. It is well-known that SAP has relatively high pricing especially for SMBs, where Microsoft is mainly targeted. However, I believe that with WF, WCF and the whole SOA paradigm in hands, Microsoft may provide to its clients very customizable and highly scalable business solutions based on Microsoft servers like BizTalk, SharePoint, SQL Server, etc. I believe that Microsoft .NET 3.0 could bring all that and thus be a potential rival to SAP.

Saturday, July 01, 2006

Atlas June CTP released

Today I saw that there is a new release of the famous AJAX library for ASP.NET 2.0 - namely Microsoft Atlas. I've used it in 3 projects so far and I haven't been disappointed. Now, as I can see from the release notes (here) the UpdatePanels are now truly *dynamic* - that is they can be added dynamically to page at runtime. Another change is in the Drag & drop functionality. I will give it a try these days. You can download this release from the Atlas web site (link).

Another thing worth mentioning related to Microsoft Atlas is the Microsoft Atlas Control Toolkit (check it out here). It gives you a bunch of free Web controls and components, which seamlessly integrate with ASP.NET 2.0 page model and brings valuable add-ons to your web applications. There is a very good article about this toolkit at ScottGu's blog(link).

Friday, June 30, 2006

Tech-Ed 2006 is online

If you missed Tech-Ed 2006, or want to catch up on some of the concepts you learned in Boston, check out these webcasts covering Windows Vista, the 2007 Microsoft Office system, management and operations, security, server infrastructure, and more. Check it out here.

Wednesday, June 28, 2006

Master of Science - completed

Yeah, last week I defended my master thesis and hence I hold now a Master of Science degree in Computer Sciences from University Of Sofia "St. Kliment Ohridski". I specialized in Distributed Systems, although the official programme is announced as "Distributed Systems and Mobile Technologies". I want to thank my girlfriend Mira for all the careful reviews she has done during the course of the writing, and for supporting me by that time!

My master thesis was about "Distributed transactions in Service-Oriented Architecture". I personally adore the concepts that SOA proclaims. From scientific point of view, most business systems pose the requirement to guarantee to its clients atomicity and consistency of the operations carried out thru them. And here comes the need for transaction control. Fortunately, the guys from WS-TX group from OASIS (link) have done a great job so now we have a bunch of specifications aimed to provide a unified coordination framework for a set of Web services. Web services are actually one concrete programming interface that complies with the SOA concepts. They are very compelling with the fact that they rely on widely spread open standards like WSDL, SOAP and UDDI. I won't go into to many details here, but having all these things in mind I decided some time ago to implement the specifications, defined by WS-TX. Namely, I was interested at WS-Coordination and WS-AtomicTransaction.

The introduction of my master thesis reviews some of the most popular transaction processing systems realizing distributed transactions. We identify the common problems that they all have in regards to interoperability and platform independence. Nonetheless, one of the primary goals of SOA is to boost code reuse thru loosely coupled interfaces. And this may serve as a elegant solution in which we will be able to combine the existing business systems in a loosely-coupled manner and having transaction control over autonomous services. This was basically the goal of the practical part of my master thesis - to show a sample solution which will be based on the SOA principles, providing distributed transactions to its clients. As a result, I implemented WS-Coordination protocol so that the concrete transaction models have a unified framework for coordination. The concrete transaction model I used followed the principles of two-phase commit protocol (2PC), provided by WS-AtomicTransaction specification. However, I'd like to say that the other transaction protocol WS-BusinessActivity, defined by WS-TX, is really very interesting one. It is best suited for long-time business transactions, which consume lots of resources for a long period of time. It tries to "relax" some of the well-known transaction properties ACID such as atomicity and isolation. I highly recommend reading this standard as well as the following article (link), which will give you a very good perspective what all these standards are all about. Here is a good place to express my gratitude to Mr. Dan House from IBM, involved with WS-TX group, who has been very responsive to all the questions I got about these specifications!

My master thesis is in Bulgarian so far, but I am planning to translate it in English (if I have some spare time). However, if someone of you is interested, you can always drop me a line and I will do the best of me to reply you. Following up this link, you can see just a short annotation of my thesis, which I believe will throw you some hints what it is all about.

Friday, June 16, 2006

Bill Gates going to retire from Microsoft?

Today while I was reading Microsoft presspass, I ended up on this article from yesterday. According to it, BillG will step out the role of Chief Software Architect to Ray Ozzie, who is currently CTO. This not will be one-time shot, rather it will be gradual and it is expected that by July 2008, all of Bill's responsibilities will be taken over by his successor. How is this going to change Microsoft? Will Ray Ozzie be able to follow and drive Microsoft as successfully as Bill has? Time will say. For sure, Ray Ozzie is very talented - check out this article to get a close view of his background. I gotta say that it is admiring - just to start with, he created Lotus Notes and Groove!

Thursday, June 15, 2006

Microsoft .NET Framework 3.0 - the idea

Today, I ended up on this interesting article, not suprisingly on Somasegar's web log (just for the record, he is the corporate vice president of the Developer Division at Microsoft). It shows what Microsoft plans are for the next generation of .NET platform. Put shortly, it will combine all of the existing .NET 2.0 functionality, but this time developers will have at their fingertips technologies like WPF, WF and WCF. According to this article, .NET 3.0 will be incorporated into Windows Vista, but for Windows XP and 2003 family - like an extension. Among these technologies, I am now reading about WCF - Windows CardSpace, formerly known as InfoCard. Put shortly, it is all about providing applications with standardized infrastructure for identity management. There will be some lectures on it on the incoming Microsoft Days on 21st - I hope that the presenters will give us a better and thorough view of this exciting technology.

Monday, June 12, 2006

Microsoft Days 2006 - Sofia, Bulgaria

Finally it is here! Every year Microsoft is presenting its newest technologies and platforms in a live exhibition here in Sofia, Bulgaria. The time has come . The event will be held on 21st and 22nd this month and will be in the famous movie theatre center Arena - Mladost. There we will be lectures showing great detail on Windows Vista, Windows Communication Foundation, BizTalk 2006, Microsoft CRM 3.0, so basically there will be something for each one beginning from IT administrators and ending up in hard core software geeks. Personally, I highly recommend this event, because after all we live in a technology era, where we should strive to be on the technology wave no matter of the specific vendor. I am always open to learn the innovative and new.

For those of you who can attend it, check out this site to see the program and the speakers. Keep in mind that the seats could easily run out, so don't hesitate to register ASAP here! :-)

Tuesday, June 06, 2006

Free download of Microsoft Virtual Server 2005 RC2

I've been using Virtual PC for a long time. It is so useful when you want to test your app on different Windows-based plaforms and OS. Virtual Server is its successor, having far more sophisticated hardware support and capabilities. So far, only MSDN subscribers could have had access to it, but hey, here comes the good news - the latest release - namely Virtual Server 2005 RC2 is now for free. Download it from here.

Monday, May 15, 2006

Virtual Desktop Manager for Windows XP

I've recently blogged about Compriz - the new Linux window manager. What really caught me there, was the great possibility to have different desktops with different applications on them. Well, today I occasionally ended up on the PowerToys for Windows XP page, where I found a similar tool that I've fell in love from the very first minute :-). It's name is "Virtual Desktop Manager" and can be found here. I really welcome the idea to have different desktops for different things I do and this tool allows me to accomplish this. I am usually with so many items opened and it's so hard to navigate between them. Definitely having different desktops for the different things I do will help me better organize my computer and work. On this page you will find some other useful tools like "Command Prompt From Here" and the famous TweakUI.

Hey, I know that this post is not very techy, but this tool really got me. I hope that it will give you a little bit of satisfaction and joy (as it did with me) :-).

Friday, May 05, 2006

Debugging OneWay Web methods

Damn, today I lost like 3 hours debugging for this one - I was not able to debug a Web method declared as OneWay. For those of you who are not aware, OneWay method is like calling a regular Request/Response Web method asynchronously. However, with OneWay Web method the ASP.NET will not wait for any return value from the Web method.

Well the first lesson learnt is: while debugging from the client side code, you cannot step into the server side code! Indeed, if you have a nice-and-tidy Request/Response Web method, you can step into the server side implementation right from the client side proxy. But taking into the account that the OneWay methods are executed asynchronously, obviously you can't do it in this way. What is your solution then? Well, you have to attach the target Web server's ASP.NET worker process (aspnet_wp.exe), set the breakpoints into your OneWay Web method and finally run the client side code (usually it is a Web form which calls your Web method). Simple as that! End of lesson 1.

And this is the place, where I am approaching the second lesson (in debugging XML Web services :-) ): in order to be able to debug your OneWay Web methods, your Web service should be compiled with ".NET" platform setting (not mentionting at all that the configuration MUST be DEBUG!). The case that I had was that there were couple class libraries included in the solution, which contained the business logic. The same class libraries were called by the Web methods. So far so good. The problem is that the build platform for these libraries is "Any CPU", which somehow is not compatible with the .NET debug configuration of the WEb services. So if I do NOT set the ".NET" platform to be active for the whole solution, then I am not able to hit my breakpoints in the OneWay Web method, otherwise - it is working nicely!

Ah, I am using Visual Studio 2005 Team System and of course, Microsoft .NET framework 2.0 - to give you an idea what is the development environment.

Well that's all folks - I hope that if someone of you ends up in the same problem, this could give him/her a solution! :-)

Tuesday, April 18, 2006

Distributed Atomic Transactions and Heuristic Outcomes

I've started working on my master thesis. To those of you who don't know, it is going to be about "Distributed Transactions in SOA". Pretty challenging and very interesting! There is still not much information about this, but in general the topic for distributed transactions has been around for like 20 years now. That said, there is a substantial research behind, but what is missing right now is the "glue", which will bring that knowledge to the SOA world.

I am planning to implement two different concurrency protocols - WS-AtomicTransation and WS-BusinessActivity. Nonetheless, WS-Coordination is the coordination protocol used in both of these concurrent protocols, so I have implement it as a pre-requisite. Well these protocols are still a work in progress by OASIS Web Services Transactions group (link).

Starting with WS-AtomicTransactions, I ended up on a problem, which occurred to be well-known in the distributed transactions and concurrency control namespace. It is called "heuristic outcomes" and it about the two-phase commit (2PC) protocol. Let's consider that after the first phase (the preparation phase), all participants reply with PREPARE/COMMIT message. Accordingly, the coordinator decides to commit the whole transaction and thus starts sending COMMIT message to all of the participants. But .. suddenly after he has sent the COMMIT message to 3 of the participants, an unexpected network outage occurs. So the remaining let's say 2 participants are waiting for their COMMIT message, but it doesn't arrive. To summarize - we have 3 participants which have already committed the transaction and another 2 which are wondering what to do (from here comes the term "heuristic outcomes", because the final decision of these 2 will make is somehow heuristic). Well, so far I haven't seen a resolution for this issue - it is rather relied upon that the logging system will be pretty sophisticated so that the administrator of your system will see this non-conformity and will manually "compensate" the COMMIT changes of the 3 participants and thus bring the whole system back in a consistent state.