Just sharing some of my inconsequential lunch conversations with you... RSS  

Wednesday, January 31, 2007

VMware Converter 3.0 Now Available

VMware Converter is the next-generation enterprise-class migration tool that lets you convert physical machines, virtual machines and other disk image formats to VMware virtual machines.

With VMware Converter you can:

  • Quickly and reliably convert local and remote physical machines to virtual machines while they are still running with zero disruption or downtime.
  • Use a centralized management console to manage multiple simultaneous conversions
  • Convert other virtual machine formats or image backups of physical machines to VMware virtual machines.
  • Create a clone of a physical machine and back it up as part of your disaster recovery plan.

Download the free VMware Converter today!!

Visual Studio Developers: Welcome to Linux!

Mainsoft is preparing a solution to quickly develop ASP.NET applications that run on Linux and other Java-enabled platforms, without having to learn a new development language.

Mainsoft's answer is quite simple: they developed a cross compiler between Microsoft IL and Java bytecode. You obviously have some limitations (for instance, no OS native calls allowed), but you can even use Visual Studio's debugger to attach to and debug the application remotely.

Check it out here.

Monday, January 29, 2007

REF: Using LINQ with ASP.NET in VS "Orcas" (Part 1)

Scott Guthrie as just posted the first video about LINQ and "Orcas".

Friday, January 26, 2007

Mac OS X - The Return of the evil brother

So, it's true, I return once again to Windows evil brother: Mac OS X. But with a twist: this time I didn't have to pay for Apple hardware, I've just used an ordinary desktop with XP, and VMWare as hardware :)

Why did I do it? To make a point: if Apple hardware can run Windows with bootcamp, Parallels or VMWare, why can't the opposite be true? If possible, I would gladly pay for Mac OS X operation system.

Apple has to understand: the world we're living is a global one, and in a global world there's no place for closed solutions. Why should we pay for hardware that is nowadays basically the same , just to use the operation system? When I had System 6 back on an LC/30, the hardware difference was huge, but those days are over. Ok, an iMac is a cool piece of hardware, but it is very closed to extensions. On the other hand, Mac OS X is a great OS. And that annoys me so much that I'm considering buying an iMac. Not fair...

For respect for Apple's wish, I will now uninstall the VMWare version of Mac OS. And I finish this article with a challenge: Mr. Steve Jobs, if you really believe in the quality of your operating system, let if run out off the cocoon it lives in let it battle side by side with is evil brother. And let the best win!

PS: when I say "let the best win", I sincerely hope that both win. More, I believe more OSs should join this group - on a perfect world, we should have a bunch of OSs we could run on the hardware we chose. Maybe on day...

Thursday, January 25, 2007

REF: ''The Paradigms of Programming'' online

''The Paradigms of Programming'' online

R.W. Floyd's Turing Award Lecture “The Paradigms of Programming” is freely available in an online journal here. It is almost 30 years old, and still very much relevant. A quotation: To the designer of programming languages, I say: unless you can support the paradigms I use when I program, or at least support my extending your language into one that does support my programming methods, I don’t need your shiny new languages [...]

in: Lambda the Ultimate

Natural Language Search in Windows Vista

Did you know you could set Vista search for answering to:

  • "pictures taken last week"
  • "Email to Jay Fluegel about Sony Vaio"
  • "Email from Bill Gates sent yesterday "
  • "Music by Eminem rated *****"
Read all about it here.

Wednesday, January 24, 2007

OASIS WS-Transaction (almost) a standard

InfoQ is covering this (almost) great achievement:

The OASIS WS-TX technical committee held a face-to-face meeting last week at IBM Hursely. This is likely the last such meeting prior to final standardisation of WS-Coordination, WS-AtomicTransaction and WS-BusinessActivity. It has been a long struggle to get here, dating back to extended transaction work at the OMG, a first attempt at Web Services standardisation via BTP and OASIS WS-CAF (where there is a lot of overlap due to history). This meeting was primarily just making sure that all of the i's were dotted and t's crossed and getting agreement to progress to OASIS standard; all of the heavy work had been done over the past 12 months.

This is an important step for enterprise Web Services deployments for a number of reasons:
  • WS-AtomicTransaction defines a traditional ACID transactions model, based on two-phase commit (2PC). Many people believe that 2PC is not right for the loosely coupled nature of Web Services and they'd be right. However, this overlooks the other important aspect of Web Services: interoperability. Interoperability between existing vendor implementations is key for many transaction processing deployments, particularly those that have grown via acquisitions of heterogeneous technologies. This has been a transaction processing holy grail for many years.
  • WS-BusinessActivity provides a forward compensation model, much more appropriate for loosely coupled, long duration interactions. This latter model will probably have slower take-up than WS-AtomicTransaction, but it should become more important over time.

Once we finalise WS-Security and WS-Reliable Exchange we'll finally be able to do secure, reliable and transacted Web Services in a standard manner.

Tuesday, January 23, 2007

ASP.NET AJAX 1.0 Released

Ok, I'm not a great fan of this "Yet Another Thing That Was Invented Years Ago And Is Being Re marketed Now", but what the hell, let adopt it!

PS: ok, it's a great implementation, and it's highly integrated with Visual Studio.

Mr. Steve Jobs: please open up your DRM!

Dear Mr. Jobs.

Everyone who owns a digital music player of any sort is painfully aware that buying music from a particular online store locks them into that platform. Your company has been particularly stubborn about allowing your protected AAC files to be played on anything but iPods. That doesn't seem fair.

So I urge you to open your propriety DRM technology, and I ask for the support of countries all over the world. France, Denmark, Norway and Germany seem to be in the right track now. Hope Portugal will join soon, if not the Europe as a whole.


Mário Romano

Inspired in: arstecnica.

Monday, January 22, 2007

REF: Visual Studio "Orcas" Web Designer Integrated into Main

in: ScottGu's Blog

This weekend was a really exciting one for the VS Web Tools team. On Saturday they checked in their new HTML and ASP.NET WYSIWYG designer into Visual Studio. This designer is a major, major improvement over previous HTML designers within Visual Studio, and will be a shared component used by both Visual Studio and Expression Web Designer going forward.

Among other things, the new HTML designer provides:

  • Split View Support (the ability to have both HTML Source and WYSIWYG design open simultaneously)
  • Extremely rich CSS support (CSS property window, CSS inheritance viewer, CSS preview, and CSS manager)
  • Dramatically improved view switching performance (moving from source->html design mode is now nearly instantaneous)
  • Support for control designers within source view (property builders, event wire-up and wizards now work in source view)
  • Richer ruler and layout support (better yet, values can be automatically stored in external CSS files)
  • Designer support for nested master pages

Thursday, January 18, 2007

Welcome the to VMware Converter 3.0 Beta Program!

Here's some old news that I've just came uppon:

VMware has unveiled VMware Converter 3.0 starter edition for public download. if you thinking create virtual machines on your current computer. Try VMware converter 3.0. An application is highly robust and scalable enterprise-class migration tool that reduces time converting physical machines to VMware virtual machines. The converter itself using snapshot based cloning mechanism which is extremely fast and reliable. Furthermore, VMware Converter enables remote conversions without disrupting the source server during the conversion process.

Beside that, VMware Converter have other features like converting virtual machines to a newer version of VMware and converting images from other software like Microsoft Virtual PC.

In related news, you can check out LiveCD Player Virtual Machine from vmwarez.com, which lets you create a virtual machine for VMware from any LiveCD ISO with just one click.

VMware Converter 3.0 starter edition highlight:
Single, central management console to easily deploy, manage and schedule conversions without the need for a Helper VM.

New local hot cloning functionality provides live migrations with zero
server downtime for the source machine.

Broad hardware support for physical machines as compared to the previous generation P2V Assistant product.

Supports cloning a wide variety of Windows OS platforms including Windows
XP, Windows Server 2003, Windows 2000, Windows NT 4 (SP4 +) and 64-bit Windows Support (Windows XP and Windows Server 2003).

Supports conversion of standalone VMware virtual machine disk formats (VMware Player, VMware Workstation, VMware GSX Server and VMware Server) across all VMware virtual machine platforms (including ESX 3.0 server and VC 2.0 managed servers as target host).

Supports conversion of 3rd party disk image formats such as Microsoft Virtual PC, Microsoft Virtual Server, Symantec Backup Exec System Recovery (formerly LiveState Recovery) and Norton Ghost9 (or higher) to VMware virtual machine disk format.

Faster conversion speeds by means of sector-based snapshot cloning.
Remote hot cloning functionality for deployment to hosted
(VMware Player, VMware Workstation, VMware Server) environments.
More information on Resize a Virtual Disk with VMware Converter

Take from AdGlobe.

Wednesday, January 17, 2007

Don't ever blog on corporate sites

Here's another example of why we shouldn't blog at corporate sites:

So it's with some surprise that I see IBM's former Fellow, "Father of Websphere" Don Ferguson, is already in the process of being airbrushed out of history. His blog already redirects to the home page for IBM's dW bloggers (he's still listed as I type this) despite the cached version showing no signs of being any less defensible than it was a month ago. You can see an older version in WayBackMachine. It seems that, now he works for Microsoft, his views are retrospectively unacceptable. Or is there another explanation?

Scoble is right:
Blogs should never be erased — for any reason. That breaks the Web.

taken from: Scobleizer

Tuesday, January 16, 2007

REF: How to: inject StateValue objects using constructor injection

Watch out for Mariano Szklanny, he has been posting some great articles, like:

The Composite Web Application Block included in the Web Client Software Factory has a very useful class named StateValue that allows you to use the ASP.NET Session and still keep you classes testable. To use it, you just have to declare a public field in your class as shown in the following code.

REF: Web Client Software Factory: Add View (with presenter) Recipe

The Web Client Software Factory has a recipe named Add View (with presenter) which automatically creates a view with presenter implementation for you. The generated code for the view looks like this.

Sunday, January 14, 2007

User Experience Specification

Here's an example of a clear and simple user experience specification, taken from orcas next gen continuous integration.

Thursday, January 11, 2007

Uninstalling Windows Applications

Uninstalling Windows Applications is not always as simple as it should. Sometimes the uninstaller just fails, making impossible the installations that demand previous uninstall.

Microsoft has this little utility that can help you here: Windows Installer CleanUp Utility.

Prior to that, if you want a decent uninstaller application, not the XP one, please try: myUninstaller. And yes, you can search for a string in the installation's list :)

Monday, January 08, 2007

REF: Bringing down an entire ASP.NET web site for maintenance

in: infoQ

From time to time operations may find the need to bring down an entire ASP.NET web site for maintenance. And of course a warning message indicating how long the maintenance will take would be useful. ASP.NET 2.0 makes this easy with the magic file known as App_Offline.htm.

By simply placing a file named App_Offline.htm in a web site's root folder switches the site to maintenance mode. The app-domain is shut down and all incoming requests return an error code with the contents of the App_Offline.htm. Once maintenance is complete and the file is deleted, the next request will restart the app-domain.

In order to prevent Internet Explorer from showing "Friendly Http Errors" instead of your message, developers should ensure the App_Offline.htm is at least 512 bytes long. If you simply don't have that much content, the file can be padded with HTML comments or other hidden text.

Sunday, January 07, 2007

Tank god for VM disk snapshot technology

After installing Team Explorer on my "Orcas" Virtual Machine, Visual Studio stopped working. As I wasn't in the mood to look for a solution, I just shut the VM rolling back the file system changes.

I was delighted with this capability, as the OS was a W2K3, where I didn't have restore points.

About the Team Explorer/Orcas incompatibility, I didn't find any clue. If someone's know what's happening, please drop me a comment. Tanx in advance.

Friday, January 05, 2007

The Architecture Journal

Strangely enough, there are still some good free journals out there. A great example is the The Architecture Journal.

Thursday, January 04, 2007

Benchmarking data tiers

Choosing your data tier is not always an objective choice. So I've decided to setup a data tier benchmarker. Here's how it works:

First I started choosing a simple entity: a Category.

Then I defined a simple data tier facade for it, as follows:

public interface IDataFacade


void Create(ISessionFacade sessionFacade, Category category);

Category Read(ISessionFacade sessionFacade, int key);

IList<Category> PagedRead(ISessionFacade sessionFacade, int page, int pageSize);

void Update(ISessionFacade sessionFacade, Category category);

void Delete(ISessionFacade sessionFacade, Category category);



As you certainly already noticed, I create another interface to façade the data tier session - ISessionFacade.


Then I created the integration test as follows:   


Category newCategory = new Category();

newCategory.Description = "testing"; 


// C r u d

dataFacade.Create(sessionFacade, newCategory);


// c R u d 

// Read

Category category = dataFacade.Read(sessionFacade, newCategory.Id);

Assert.AreEqual<string>(category.Description, newCategory.Description); 

// PagedRead

IList<Category> categories = dataFacade.PagedRead(sessionFacade, 1500, 10);

Console.WriteLine("categories.Count: " + categories.Count); 


// c r U d

category.Description = String.Format("{0}-{1}", category.Description,DateTime.Now.ToLongTimeString()); 

dataFacade.Update(sessionFacade, category);



// c r u D

dataFacade.Delete(sessionFacade, category);




The code above was executed on 8 threads, each iterating over 16 session openings, each callings 64 times.


Now for some fun: I implemented a NHibernate and a SqlClient version of this facades, for example:


public void Create(ISessionFacade sessionFacade, Category category)




And the result was: NHibernate implementation was 15% faster! Isn't it great?

Ok, I must confess, the SqlClient code didn't use parameters, that's probatly why. Yet, an excelent result for NHibernate.

And yes, it's true, this doesn't prove NHibernation's scalability. But it's a start, and at least can be backed by real data.

One of these days I'll benchmark NetTiers and LINQ for SQL, and post the results back here. Cya there :)

Wednesday, January 03, 2007

REF: The Iceberg Secret, Revealed

Yet another great posting on Joel on Software.

Here are some of my favorite highlights:

Customers Don't Know What They Want. Stop Expecting Customers to Know What they Want. It's just never going to happen. Get over it.


2. "We built it exactly the way they wanted. The contract specified the whole thing
down to the smallest detail. We delivered exactly what the contract said. But
when we delivered it, they were crestfallen."

3. "Our miserable sales person agreed to a fixed price contract to build what was basically unspecified, and the customer's lawyers were sharp enough to get a clause in the contract that they don't have to pay us until 'acceptance by customer,' so we
had to put a team of nine developers on their project for two years and only got
paid $800."


Important Corollary One. If you show a nonprogrammer a screen which has a user interface that is 90% worse, they will think that the program is 90% worse.


Important Corollary Two. If you show a nonprogrammer a screen which has a user interface which is 100% beautiful, they will think the program is almost done.

REF: An overview of virtualization methods, architectures, and implementations

IBM has posted this interesting article about virtualization history and implementations over Linux. Apart from the history, the article explains in a very simple way several types of virtualization.

in: http://apple.slashdot.org/article.pl?sid=07/01/02/1336221&tid=3

Tuesday, January 02, 2007

Is D the answer?

What's D?

D is a general purpose systems and applications programming language. It is a higher level language than C++, but retains the ability to write high performance code and interface directly with the operating system API's and with hardware. D is well suited to writing medium to large scale million line programs with teams of developers. D is easy to learn, provides many capabilities to aid the programmer, and is well suited to aggressive compiler optimization technology.

D is not a scripting language, nor an interpreted language. It doesn't come with a VM, a religion, or an overriding philosophy. It's a practical language for practical programmers who need to get the job done quickly, reliably, and leave behind maintainable, easy to understand code.

D is the culmination of decades of experience implementing compilers for many diverse languages, and attempting to construct large projects using those languages. D draws inspiration from those other languages (most especially C++) and tempers it with experience and real world practicality.

Is D fun? Yes. Is D aligned with my vision of a compiled languages enriched with some of the dynamic languages artifacts? Definitely yes! Is D the answer to my problems? Nope, in me case, I'll still put my hope on C#. Will D be the language of choice for OS developers? Hard to predict, but probably not.

Still a nice language...

Development Catharsis :: Copyright 2006 Mário Romano