Trying out Windows Live Writer

In honor of its officially coming out of beta, I decided to download and try out Windows Live Writer.

Some of the features that attracted me are the ability to use one interface to publish on a number of different blogs at the same time, through a desktop client, without having to log in and out of different admin sites (I currently write or contribute to 4-5 different WordPress blogs with varying degrees of frequency, and the ability to post from one place makes it much easier to add content to different sites).

I was also curious to see how well Microsoft has gotten one of their products to interact with software of non-MS origin (and with PHP open source systems like WordPress). Compared with others, Microsoft very often seems to have a hard time opening up their products to others (just look at the new Live email vs. Gmail: Gmail lets you forward your email anywhere, and retrieve your email through any program using POP or IMAP, while Live email only lets you forward to an email address that is part of another Microsoft domain, like msn.com, hotmail.com, but other than that gives no options to extracting your email automatically outside of the Microsoft servers).

Here are some things worth noting so far:

Download and Setup: Easy and painless. Install went quickly. I entered the url for my homepage, my username and password. The software automatically determined that I was using WordPress, downloaded theme information and set itself up. From when I clicked download, I was ready to write to my blog using Live Writer in less than 10 minutes.

Web Preview: ellisweb-livewriterA very handy feature, allowing you to preview your post within your current blog theme. It actually did a very decent job of rendering the post the way it should (judging by Firefox). (This is in Web Preview mode, giving you a read-only snapshot of how your page would look. The Web Layout view mode however did not work so well for me. From what I gather, this is supposed to let you compose your post inside your blog theme. In my case, it put the title of my post inside the header, making it impossible to see what I was typing.

The Basic Stuff: Hyperlinks, pictures, trackbacks, basic editing functions – all of it works well, and is pretty easy to figure out. Though this is not something that will make a product shine in the market (even spell check is common nowadays, both in Firefox and WordPress), lack of these features (or a bad implementation) will kill a product from the get-go. (One WordPress caveat: although WLW includes native support for different tagging systems, it does not yet allow you to post tags to WordPress 2.3+. There are workarounds for this.)

Plugins: Although WordPress features a very powerful plugin system, it is most often used to improve the output of your blog, not the UI for entering posts. WLW plugins on the other hand are all centered on helping you get different types of data easily into your posts. I see this (as well as the automatic connectivity to different blogging systems and accounts) as the feature that will make this product really stand out. So far I have installed two different plugins (automatically replacing text formatting methods that I had previously had to code into my template, css and html):

Insert Code:

public static string HelloWorld() {
  string s = "Hello World";
  return s.ToUpper();
}

(Note: I first tried using the Insert Source Code Snippet plugin, but this was buggy and added a whole bunch of superfluous brackets. Afterwards I looked some more and found the Insert Code plugin by shahineo – easy to use and as you can see, produces some nice output).

Insert LTR Text:

זה יעזור לי הרבה לכתוב בעברית בבלוג שלי

All things considered, I am pretty satisfied with my first experience using Windows Live Writer. If you are reading this, it means that the post was also successfully posted to my blog through the interface (yay!). I think that I will be making it my primary blogging platform over the next couple of months. Now, if only I could use this to post to Newsvine…

Worried Yet?

In response to Jeff Atwoords post, Mike Gunderloy explained why he is seeking to move away from the Microsoft programming world and into Rails and open source. One sentence stuck out to me from his post:

Now, if the Microsofts of the world have their way, we’ll end up with everything in fenced-off gardens: every piece of user interface, every algorithm, every data structure, will belong to someone, and will not be available for use unless you pay for it somehow. It will become literally impossible to legally write software without entering into a web of commercial cross-licensing agreements.

When I first read this a few days ago, I thought “Mike is exaggerating a little bit here. Even if Microsoft (and other companies) hold lots of software patents, will they really go so far as to force licenses for every last thing? Talk about stifling development and pissing off the developers, developers, developers“.

Well, looks like Mike was on to something. A recent article in Fortune magazine said that Microsoft is looking to start enforcing licenses on 235 different patents that they claim are violated by Linux, Open Office and other pieces of Free Open Source Software (FOSS):

Microsoft counters that it is a matter of principle. “We live in a world where we honor, and support the honoring of, intellectual property,” says Ballmer in an interview. FOSS patrons are going to have to “play by the same rules as the rest of the business,” he insists. “What’s fair is fair.”

Microsoft General Counsel Brad Smith and licensing chief Horacio Gutierrez sat down with Fortune recently to map out their strategy for getting FOSS users to pay royalties. Revealing the precise figure for the first time, they state that FOSS infringes on no fewer than 235 Microsoft patents.

Where this will go is anyone’s guess. But the cat is officially out of the bag, and if it turns out that these 235 patents are laughable claims covering user interface items that have become completely standardized, moves like this on Microsoft’s part will do nothing but engender further segmentation of the programming world into us vs. them, which brings us back to a statement from Jeff’s article as a suggestion for all who have a vested interest in seeing both free and Microsof-based software development continue and progress unhindered:

As a software developer, you’re doing yourself a disservice by pledging allegiance to anything other than yourself and your craft– whether it’s Microsoft or the principle of free software. Stop with the us vs. them mentality. Let go of the partisanship. We’re all in this thing together.

Visual Studio 2005 Add-Ins and Tools That I Use

I am right now in the middle (about 20% and 18K lines of code through) a pretty substantial Windows Forms project using Visual Studio 2005 (C#). Here are some of the add-ins that I have been using (ranked in order of essential to useful):
Continue reading

Running Two Versions of Internet Explorer Simultaneously

Multiple versions of Explorer for Windows on a single computer have revolutionized CSS bug testing for websites, but sadly the different IE browser windows appear identical to the eye, potentially leading to confusion and testing mistakes.

Although Internet Explorer 7 (which your Windows XP computer should have already automatically downloaed and installed) is definitely a step up from its predecessor, some people (ie: web designers and developers) will still have a need to run IE6. If this is your case, read Taming Your Multiple IE Standalones (reference from Robert Nyman)

What would Raymond Chen say?

I just read a post from Karl Seguin on CodeBetter (quoting Frans, who quoted Soma) that Visual Studio 2002 and 2003 will not run on Windows Vista. Or to quote Soma directly:

However, we will not support Visual Studio .NET 2002 or Visual Studio .NET 2003 as development environments on Windows Vista. You can continue to use Visual Studio .NET 2002 or 2003 on Windows XP to develop applications that can run on Windows Vista.

And how will they be ensuring that VS 2005 is a great development platform for Vista?

Visual Studio 2005 SP1 will run on Vista but will likely have a few compatibility issues.

Uh huh. So the premier IDE for Microsoft development will work on the Vista with “a few compatibility issues”, while the only good IDEs for developing and maintaining ASP.net 1.1 applications will just not work. At all.

What were they thinking?

It looks like Joel Spolsky’s analysis of the situation within Microsoft has really come true. In How Microsoft Lost the API War, Joel identified two camps within Microsoft: the Raymond Chen camp, committed to maintaining software compatibility between versions of the operating system, even if it meant inserting custom API hacks just to make sure that a poorly-programmed SimCity would still work. Said Raymond:

I could probably write for months solely about bad things apps do and what we had to do to get them to work again (often in spite of themselves). Which is why I get particularly furious when people accuse Microsoft of maliciously breaking applications during OS upgrades. If any application failed to run on Windows 95, I took it as a personal failure. I spent many sleepless nights fixing bugs in third-party programs just so they could keep running on Windows 95.

This attitude towards maintaining program compatibility continued through XP. And we are not talking about Microsoft-developed applications, intended to make Microsoft more money. We are talking about third-party games, VB6 apps, old DOS console apps. You name it.

The other camp is the “MSDN Camp” – eternally committed to releasing (and rereleasing, and patching) the newest and greatest technology, compatibility be damned. And as Joel pointed out, starting with VB 6.0 to VB.net, IIS 5.0 to IIS 6.0, new Microsoft products were no longer fully compatible with old ones.

Which brings us to today. Microsoft has made the decision to completely abandon a program which is still used by a very large number (if not most) of programmers who develop for Microsoft technology. Why?

Given the customer feedback that we’ve received since the launch of Visual Studio 2005 indicating the manageability of upgrading from Visual Studio .NET 2003 to Visual Studio 2005, we are focusing our efforts on ensuring VS 2005 is a great development platform for Vista.

Thanks Soma. But no thanks. The migration from Asp.net 1.1 to 2.0 does not work flawlessly. And even if it did (which is probably never, for many of the very complicated webapps out there coded in 1.1), why should we? Why risk breaking something that is already working? In order to use Visual Studio 2005 on Vista, which will hopefully not have too many “compatibility issues”, and will hopefully be able to handle all of our programming needs (covering any .Net framework, as long as it is 2.0)?

No thanks. Personally, unless something drastic changes, I don’t see myself switching from XP to Vista for some time to come. And I am sure that I will not be alone.

Where Sql Server Management Studio Falls Short

When I was installing programs on my new laptop (Dell Latitude D820), some of my coworkers recommended that instead of installing Enterprise Manager (the client tools for SQL Server 2000), I should use the Microsoft SQL Server Management Studio that is included with SQL Server 2005 instead. It can perform all of the functions that Enterprise Manager/Query Analyzer can perform, except better. It is just constructed better, and lacks many of the annoying features of the previousl client tools (like how the modify Stored Procedure dialog box was modal, preventing you from doing anything else – like opening up another sproc and copying some text – while it was open, as well as close integration between the query windows and the manager interface). Plus, it could manage SQL Server 2000 databases perfectly well (which is important, as my company still uses this for their primary DB server).

So I installed the Management Studio a few weeks ago. Yet today I find myself reinstalling Enterprise Manager/Query Analyzer, because it has some features I need that Management Studio does not provide. Here they are:

  • Cannot handle diagrams from Sql Server 2000 – This one was the deal-breaker for me. The database diagramming component of Enterprise Manager was always my primary way to define relationships and foreign keys between tables in the database. The graphical representation made the whole process much easier and helped me make sure that I wasn’t missing anything. When I tried to make a DB diagram for my 2000 database using Management Studio, I was directed to a MSDN help page that informed me that this was not supported by Management Studio (since MSSQL2000 uses a different diagram definition than 2005). Argh. I know that the format is different, but knowing that lots of people still use 2000, would it have been so difficult to add in support for the old formatting model? (This was the most annoying. The rest of the list are other pet peaces I have with Management Studio that I will be happy to see again when using Enterprise Manager)
  • Setting the Identity Column – In Enterprise Manager, when defining the Identity column in a table, I can simply double click on the No in the Columns property display and it is set. In Management Studio, I have to First expand the Identity Specification section in the Column Properties, and then double-click on the (Is Identity) value. This extra click is annoying, especially considering how the Column Properties always needs to be made taller (it opens up too short) and the checkbox to expand the section is very small. Why can’t I just double-click on the value of Identity Specification like I do in Enterprise Manager and be done with it?
  • Declaring Column Sizes – In Enterprise Manager, when defining a table, the column type and the size of the column were in two different rows, so when I want to enter a Varchar(100) row, I type “varc” (at which point the drop-down box identifies my selection as a varchar) “[tab]” (to get to the size column) “100” to set the size. In Management Studio however, there is not separate column for column size. So when I am setting a Varchar(100) column, I have to type it all out “varchar(100)”. You might say “It is only five more characters, quit crying about it”, but it actually makes a difference in terms of work-flow (especially considering how if you want to change the size of a column that was previously set, you have to either retype the entire type+size, or use your mouse to highlight the numbers and change them. It is impossible to do the editing with the keyboard alone. Plus, if you make a typo when putting in the parentheses, you have to start over)

It is the small things that make the difference. So at least for now, I will be using Enterprise Manager again for initial database setups. Too bad, since other than these things, Management Studio really does excel. (Subtle hint from anyone in the Microsoft SQL Server 2005 Management Studio team who is reading this).