After a very interesting debate over the role of software architecture over lunch, where we compared it against the role of the building architect, I friend of mine sent me this link: Worldwide Institute of Software Architecture.
I particularly liked the definition (straight from the dictionary), the philosophy (and contextualizing with the building architecture evolution), and a very nice tool which I have to try one of this days, Simon Tool.
Friday, December 29, 2006
The role of software architect
Posted by Mário Romano at Friday, December 29, 2006 0 comments
Labels: architecture
Thursday, December 28, 2006
How often our predictions fail..
A long time ago, when I was still in college back in the late 80's, early 90's, I firmly believed that the relational database would lost their market share in the year 2000, and the object persistence models (like db4o) and the rest of the object oriented databases family would naturally take their place.
I was obviously wrong. No mater how much we know about the ORM dificulties, we are still using the relational paradigm. And quit rightly, because it as been proven to work. And maybe because we are used to those...
I also failed in the following predictions for the end of the century:
- "in the early 90s, I predicted the fax would not make it to the 2oth century";
- "in the early 90s, I predicted voice would be only transported over data channels until the end of the century".
Posted by Mário Romano at Thursday, December 28, 2006 2 comments
Labels: Technology
Tuesday, December 26, 2006
Enterprise Library for .NET Framework 3.0
Here's P&P Christmas gift for the geeks: a partial implementation of the Validation Application Block, Application Block Software Factory, Visual Studio-integrated config tool, DAAB enhancements and more.
Posted by Mário Romano at Tuesday, December 26, 2006 0 comments
Labels: Development
Thursday, December 21, 2006
Frequently Asked Questions About the Home Use Program available to qualifying Microsoft Volume Licensing customers
The Home Use Program is a benefit of Software Assurance, one of Microsoft’s volume licensing programs. It provides a simple way for employers to enable employees to work at home with the same Microsoft® products they use at work.
Answers to frequently asked questions about the Home Use Program available to qualifying Microsoft Volume Licensing customers.
Posted by Mário Romano at Thursday, December 21, 2006 0 comments
Labels: Tools
REF: "Google kills SOAP!"
Vasters posted a very interesting article about the Google search API change. Rather than observing from the technological view, he rather analyze it by the business side.
Posted by Mário Romano at Thursday, December 21, 2006 0 comments
Labels: Technology
Tuesday, December 19, 2006
The Mythical Man-Month
I'm revisiting an old friend of ours, The Mythical Man-Month.
From wikipedia:
The Mythical Man-Month: Essays on Software Engineering is a book on software project management by Fred Brooks, whose central theme is that "Adding manpower to a late software project makes it later." This idea is known as Brooks' law, and is presented along with the second-system effect and advocacy of prototyping. The work was first published in 1975, and republished as an anniversary edition in 1995 (ISBN 0-201-83595-9) with the essay No Silver Bullet and commentary by the author.
I'm recovering this old issue after earing a podcast (from DotnetRocks, if I remember), where this concept was very well illustrated as: "9 women can't make a baby in 1 month".
Now seriously, I should now explain why this article is labeled as "architecture": it's because one of the goals we should pursuit when architecting and choosing methodologies should be the contention of the mythical man-month issue.
Posted by Mário Romano at Tuesday, December 19, 2006 0 comments
Labels: architecture, Fun, Project Management
Monday, December 18, 2006
Where's i-Technology Headed in 2007, Java people say?
Here are the trends, as Java people see it.
Some of my references and comments:
- 'A slowdown in the AJAX hype': yeap!
- 'The open-sourcing of Java will have no effect whatsoever on Java's slow decline in favor of dynamic languages (Ruby, Python) and C#'. More, I don't think there will be as many defections from C# to the dynamic languages, as from Java.
- 'IE 7 will have a fast adoption curve and so Firefox will cease gaining market share' - Yeap.
- 'IT finally admits that there is no silver bullet'. Eh, eh, eh, I agree. But I must confess, I was once young and I did believe on new silver bullets every year.
- 'The enterprise will embrace ways to simplify development by continuing to embrace open source software and Agile Development strategies'. Yeap, not in a "all I need is open source", but more like "open source has it's place". As most definitely, alse Agile development strategies!
- 'Dynamic languages and frameworks will continue to make leaps in popularity and adoption. Given the current squeeze on technology talent in the US, companies are going to have to learn how to do more with fewer resources. Moving to dynamic languages and frameworks as well as other simplification such as varying Agile software development practices will enable this to take place.' This is the american development community response to foreign outsourcing. And this is the way to go - I'm only sorry that this was not the answer for many people when their jobs weren't at risk...
Posted by Mário Romano at Monday, December 18, 2006 0 comments
Labels: Development
VMware to Microsoft Virtual Machine Conversion
Here is a pretty little tool: VMDK(VMWare) to VHD Converter.
From bink.nu:
Anyway I've run through a conversion and it worked a treat. I used the 'Dugie-thumb-in-the-air' guide below:
- 'Scrub' the VMware Image using the first half of that very fine guide from Chris Wolf over at SearchServerVirtualization.com
- Use VMDK2VHD to convert the VMDK virtual disk to to a VHD
- Create a new VMC with roughly the same hardware (IDE drives, etc, etc) in Virtual PC 2007
- Attach your newly created and converted VHD
- Power up you new VMC, login and wait (a few minutes) for *all* the new hardware to be detected
- I clicked cancel to the new hardware driver wizard
- I also clicked no to the reboot - hey livin on the edge here
- Install the Virtual Machine additions (v13.724)
- Reboot
- Let the hardware wizard run
- Tada!
The VMDK was 1,986 Mb and it converted to a 2,001 Mb VHD in about 15 minutes on my aging T41p laptop.
Overall with VM reboots, coffee, etc, etc the whole conversion took about 40 minutes (I really should have done a screen cast of the whole process!?)
Posted by Mário Romano at Monday, December 18, 2006 0 comments
Labels: Tools
REF: Using the Rake Build Language
Despite my visceral hate for languages like Ruby, here is an good example of (internal) DSL usage, from Fowler's site:
Rake is a build language, similar in purpose to make and ant. Like make and
ant it's a Domain Specific Language, unlike those two it's an internal DSL programmed in the Ruby language. In this article I introduce rake and describe some interesting things that came out of my use of rake to build this web site: dependency models, synthesized tasks, custom build routines and debugging the build script.
Very interesting from the DSL perspective. Hope I will never have to use it :)
Posted by Mário Romano at Monday, December 18, 2006 0 comments
Labels: architecture
Visual Studio 2005 Service Pack 1 now available
I know, this is old news from last friday, but I've only read it now. Here's the reference from theserverside.net, and my personal comment: Visual Studio 2005 Team Suite SP1 is 431MB! Is this a reasonable size for an SP?!?!
More than a year after the release of Visual Studio 2005, Microsoft has finished VS 2005 SP 1. The service pack addresses issues Microsoft discovered through both internal testing and customer feedback.
In all, there are more than 70 enhancements, ranging from support for mobile devices and the SQL Sever Compact Edition to integration with Excel 2007 and Project 2007. In addition, the service pack includes the Web Application Project, which is a previously released tool for migrating Web apps from ASP.NET 1.x to ASP.NET 2.0.
Three service packs are available now:
- Visual Studio 2005 Team Suite SP1 -- This edition covers the standard, professional and team versions of Visual Studio 2005.
- Visual Studio 2005 Team Foundation Server SP1
- Visual Studio 2005 Express Editions SP1 -- Separate downloads are available for the five free versions of Visual Studio 2005: Visual Basic, Visual C++, Visual C#, J# and Web Dev.
Finally, there is a Visual Studio 2005 SP1 Update for Windows Vista Beta. This service pack, aimed at developers using VS 2005 in conjunction with Vista, will officially ship after the new operating system ships in early 2007.
[updated]
If you're having trouble installing SP1, please check out this link.
Posted by Mário Romano at Monday, December 18, 2006 0 comments
Labels: Development
Thursday, December 14, 2006
REF: Quicklist of VPCs and VHDs from Microsoft Downloads
I posted about one of them earlier, but still, this article is a complete ripoff from here. Man, I would have made a great scholar...
Posted by Mário Romano at Thursday, December 14, 2006 0 comments
Labels: Tools
Tuesday, December 12, 2006
Windows development chief: 'I would buy a Mac if I didn't work for Microsoft'
And you would be very well served, it's a beautiful OS. But so is XP and Vista. And Linux. If I had James Allchin 's budget, I would get a bunch of different OSs, and installed them on a bunch of machines.
But that's not the issue. According to this article, Allchin was caught with is pants down on his mails.
The article end with this funny statement:"In my view, we lost our way," Allchin, the co-president of Microsoft's platform and services division, wrote in an e-mail dated Jan. 7, 2004. The e-mail was presented as evidence late last week in the Iowa antitrust trial, Comes v. Microsoft Corp.
"I think our teams lost sight of what bug-free means, what resilience means, what full scenarios mean, what security means, what performance means, how important current applications are, and really understanding what the most important problems our customers face are. I see lots of random features and some great vision, but that does not translate into great products."
Conlin also presented evidence of a job description for Bill Gates' technical assistant, whose primary duty was to make sure no permanent record of Gates' e-mail existed, Conlin said, according to transcripts.
Well, maybe Microsoft's success is based on this actions: when pushed, they react and respond like hell breaking loose!... And so the Linux threat seems under control. But watch out for Apple...
Posted by Mário Romano at Tuesday, December 12, 2006 0 comments
Labels: Operating Systems
Anders Hejlsberg on dynamic/static religious wars
Hejlsberg in his best:
'When you ask why people like dynamic language, people often say it's because [they] have to write less or because it’s terser or succinct and you try and dig a little bit…and often one of the reasons that gets cited is there are no types there, and therefore types get in the way. We all know that strong typing is a sort of a lever. And the further you dial it up the more painful it gets.'
'However, one of the things that we are learning a lot from functional programming languages is in the area of type inference. It is one of those … 'have your cake and eat it too' kind of things. It is actually strongly typed'
'When types are gone, there are just a lot of things a tool can no longer do for you,'' Hejlsberg advised, adding that his approach was to look for ''the happy medium.'
I couldn't agree more!
Posted by Mário Romano at Tuesday, December 12, 2006 0 comments
Labels: Development
Monday, December 11, 2006
REF: Lambda expressions explained like nowhere else!
B# .NET has posted a great article about lambda expressions, and a real case of usage evolution. The goal is to eliminate noise using a feature in C# 3.0, based on functional programming concepts (lambda calculus).
Check out the rest of the series:
Title: C# 3.0 Feature Focus - Part 1 - Local Type Inference
Title: C# 3.0 Feature Focus - Part 2 - Object Initializers
Title: C# 3.0 Feature Focus - Part 3 - Collection Initializers
Title: C# 3.0 Feature Focus - Part 4 - Extension Methods
Posted by Mário Romano at Monday, December 11, 2006 0 comments
Labels: Development
Microsoft and McLaren Electronic Systems Win Race to Provide Electronic Technology to the FIA Formula One World Championship
Yeap, it looks like crazy, but the ECUs in F1 cars will be shipped by Microsoft.
PARIS — Dec. 11, 2006 — Microsoft Corp. and McLaren Electronic Systems (MES) today formally announced that they are to be the official suppliers of engine control units (ECUs) to the Fédèration Internationale de l’Automobile (FIA) Formula One World Championship for the 2008, 2009 and 2010 racing seasons.
Ok, this is not the NT kernel that will ship in the ECUs, and yes, it's probably a marketing operation, but one thing's for sure: slowly but steadily, the market in recognizing Microsoft's ability to ship quality products and services. It's about time. Good for you, Microsoft.
PS: ok, Microsoft still ships lots of crappy products, the question is: who doesn't?...
Posted by Mário Romano at Monday, December 11, 2006 0 comments
Labels: Fun, Technology
Saturday, December 09, 2006
NDAS - 2ª generation of great technology for the poor
Some days ago I stumbled upon this cool technology: NDAS (Network Direct Attached Storage) is Ximeta's patented technology which enables all digital storage devices(HDD, ODD, Memory, Tape Drives) direct connection into standard Ethernet networks. All users or systems on the network can directly control, use and share those devices.
I can't help seeing NDAS as:
NDAS = coolVersionForThePoor (
iSCSI = (
coolVersionForThePoor (SAN)
)
);
Comparing NDAS to NAS, Ximeta got something like:
NDAS system
NAS system
Next generation advanced technology
Based on old technology (PC file sharing)
Higher performance (up to 6 times faster)
Lower and limited performance
RAID, Aggregation, Mirroring, unlimited expansion
Not possible between multiple NAS systems
Simple, easy, no need IP setting
Complex, difficult, IP setting, DHCP setting required
Strong security (Limited to local network, safe from internet hacking)
Weak security (Open to the Internet)
Block level storage (user has full control of storage)
Folder sharing (users can not format, partition or choose other file systems, etc.)
Multimedia application, most suitable for
multi-media
Can not support enough performance for multimedia
Consumer electronics compatibility
More difficult to use with consumer electronics
Cost-effective, simple structure, fewer sources of problems
High cost, complex structure, more sources of problems
Cool, hum? I particulary liked the block level storage - wouldn't it be cool to have a bunch of this drives in RAID0 serving for SQL Server or Oracle storage over a Gigabit LAN? And pay €179 for a 400GB storage facility?
Peaty this is a propriety solution, not an open and supported one. Maybe one day...
Posted by Mário Romano at Saturday, December 09, 2006 0 comments
Labels: Technology
How the solution will be based on solutions, not projects
I've started my career doing projects for a year or so. Then I switched to products for some years. Then back to projects. And again to products. And I'm currently back on projects. Do you notice a trend, or just an inconsistent career?
Now seriously, as so many things in live, the trends come tend to be circular. And we all have experience the cycle:
- a) this is the way to go, let's just use/build a product
- b) oops, the product customization is harder then we thought
- c) arghh, I'll never choose a product as long as I live
- d) projects are just too expensive, why not give products a chance?
Even the information systems will soon be implemented over solutions, not as custom-from-ground-up projects. And they won't be implemented by consultants, but by the business people - well, the very geek business people, but nevertheless, business people. And yes, one of the greater problem we have, the extraction of business processes will finally go away! But then so will our most of our jobs, won't they?
Posted by Mário Romano at Saturday, December 09, 2006 0 comments
Labels: Technology
Wednesday, December 06, 2006
Windows Vista Volume Activation 2.0 Technical Guidance
As much as I agree with stopping piracy, I'm not so sure making Vista VLK hard to install is a good thing for Microsoft. But well, here's the documentation:
- Volume Activation 2.0 Step by Step Guide - This guide provides planning, deployment and operational guidance for activating volume editions of the Windows Vista operating system.
- Volume Activation 2.0 FAQ - This document provides answers to frequently asked questions about Windows Vista Volume Activation 2.0.
- Volume Activation 2.0 Technical Attributes - This spreadsheet lists WMI properties, WMI methods, KMS registry keys and values, KMS log events, KMS error codes and KMS PRC messages.
- StandardUserProductActivation.zip - This contains the Standard User Product Activation webpage. This webpage is used for simplifying Standard User recovery from Reduced Functionality Mode (RFM). Refer to Volume Activation 2.0 Step-by-Step Guide for instructions.
Posted by Mário Romano at Wednesday, December 06, 2006 0 comments
Labels: Operating Systems
Sysinternals Suite
Probably not news, but news to me! Sysinternals has a AllInOne download package - they call it suite. Here's the link.
Posted by Mário Romano at Wednesday, December 06, 2006 0 comments
Labels: Tools
Tuesday, December 05, 2006
REF: Script#
Will we finally have a decent scripting language on our browsers?
The latest release of Script# (0.2.0.0), also published today, contains a code-behind model that allows me to add c# code-behind to a page, and have that converted into script. I'll blog more about that in the coming days, but this post is mostly about WPF/E.
Here is a portion of my Scriptlet class, which contains c# code-behind for the page. The code in bold shows the scriptlet instantiating a WPF/E plugin instance with some XAML markup.
using System;
using System.DHTML;
using System.WPFE;
using ScriptFX.UI;
namespace PhotoViewer {
public sealed class PhotoViewerScriptlet : IDisposable {
private PhotoViewerControl _photoViewerControl;
...
public static void Main(Dictionary arguments) {
PhotoViewerScriptlet scriptlet = new PhotoViewerScriptlet(arguments);
}
private PhotoViewerScriptlet(Dictionary arguments) {
...
Button searchButton = new Button((DOMElement)arguments["SearchButtonElement"]);
searchButton.Click += OnSearchLinkClick;
WPFEPlayer player =
WPFEFactory.CreateWPFEPlayer((string)arguments["ID"],
(DOMElement)arguments["ParentElement"],
(string)arguments["MarkupURL"],
"Black", /* windowLess */ true);
_photoViewerControl =
new PhotoViewerControl(player, (string)arguments["FlickrKey"]);
...
}
private void OnSearchLinkClick(object sender, EventArgs e) {
string[] tags = _tagsTextBox.Text.Trim().Split(' ');
_photoViewerControl.Start(tags);
}
...
}
}And here is some code from the PhotoViewerControl that wraps the WPF/E plugin and implements the functionality to make requests to Flickr and progress the presentation from one photo to the next.
internal sealed class PhotoViewerControl : IDisposable {
private WPFEPlayer _player;
private string _flickrKey;
private Image _photo1;
private TextBlock _title1;
private Storyboard _storyboard1;
private HTTPRequest _request;
private Photo[] _photos;
private int _nextPhoto1;
public PhotoViewerControl(WPFEPlayer player, string flickrKey) {
_player = player;
_flickrKey = flickrKey;
}
public void Initialize() {
_photo1 = (Image)_player.FindName("image1");
_title1 = (TextBlock)_player.FindName("title1");
_storyboard1 = (Storyboard)_player.FindName("storyboard1");
...
}
public void Start(string[] tags) {
Dictionary scriptTransportParams = new Dictionary();
scriptTransportParams["callbackParameterName"] = "jsoncallback";
string uri = String.Format(FlickrSearchURLFormat, _flickrKey, tags.Join("+"));
uri = HTTPTransport.CreateURI(uri, typeof(ScriptTransport), scriptTransportParams);
_request = HTTPRequest.CreateRequest(uri, HTTPVerb.GET);
_request.Invoke(OnRequestComplete, null);
}
private void OnRequestComplete(HTTPRequest request, object userContext) {
IHTTPResponse response = request.Response;
if (response.StatusCode == HTTPStatusCode.OK) {
PhotoSearchResponse searchResponse = (PhotoSearchResponse)response.GetObject();
_photos = searchResponse.photos.photo;
StartInternal();
}
}
private static string CreateFlickrPhotoURL(Photo photo) {
return String.Format(FlickrPhotoURLFormat, photo.server, photo.id, photo.secret);
}
private void ShowFirstPhoto() {
_photo1.Source = CreateFlickrPhotoURL(_photos[_nextPhoto1]);
_title1.Text = _photos[_nextPhoto1].title;
Window.SetTimeout(StartFirstTimeline, 1000);
_nextPhoto1 += 2;
if (_nextPhoto1 >= _photos.Length) {
_nextPhoto1 = 0;
}
}
private void StartInternal() {
_nextPhoto1 = 0;
ShowFirstPhoto();
Window.SetTimeout(ShowSecondPhoto, 8000);
}
private void StartFirstTimeline() {
_storyboard1.Begin();
Window.SetTimeout(ShowFirstPhoto, 14000);
}
...
}One other thing to observe in the sample... the sample makes requests to the Flickr service directly without going through a server-side proxy. To make these cross-domain calls successfully, It uses
<script>tags rather than XMLHttp to work against Flickr, and uses the JSONP support provided by the service. Script# provides a mechanism to work against this protocol transparently by hiding away the plumbing in the ScriptTransport class that is referenced in the code above. If this is of interest, drop me a comment, and I'll blog about it further.The sample is packaged into the Script# msi that you can download to delve into the code. In addition to this sample, the msi contains the Script# compiler, and various other samples. There is also a document with a how-to guide on using Script# with a lot of new content, that should help you get up and running using the installed project templates.
in: nikhilt.net
Posted by Mário Romano at Tuesday, December 05, 2006 0 comments
Labels: Development
Monday, December 04, 2006
Flash Killer is on his way - WPF/E
"WPF/E" is the Microsoft solution for delivering rich, cross-platform, interactive experiences including animation, graphics, audio, and video for the Web and beyond. Utilizing a subset of XAML (eXtensible Application Markup Language)-based Windows Presentation Foundation technology, “WPF/E” will enable the creation of content and applications that run within multiple browsers and operating systems (Windows and Macintosh) using Web standards for programmability. Consistent with Web architecture, the XAML markup is programmable using JavaScript and works well with ASP.NET AJAX. Broadly available for customers in the first half of 2007, “WPF/E” experiences will require a lightweight browser plug-in made freely available by Microsoft.
Posted by Mário Romano at Monday, December 04, 2006 0 comments
Labels: Development
SQL Server Best Practices
Microsoft has announced a new web site for database administrators and developers called SQL Server - Best Practices. This site offers a wide range of material from top 10 lists suitable for novices to the in-depth technical white papers needed by seasoned professionals.
in: infoq.com
Posted by Mário Romano at Monday, December 04, 2006 0 comments
Labels: Development
The Linux Equivalent Project
The goal is to provide an informational and available website for all linux users.
As of today, this is what's loaded:
Posted by Mário Romano at Monday, December 04, 2006 0 comments
Labels: Operating Systems
Sunday, December 03, 2006
Management in the Portuguese Public Sector
[This post's addressing is broader to Project Management - I just didn't find necessary to open a 'Management' label.]
My father is taking a course in public administration management. The course is 'FORGEP - Formação em Gestão Pública', targets middle management and consists of:
- 120 hours of classes
- 60 hours of e-learning
- hundred of hours in reading material
- workgroup projects
- a final certification exam
1. Ethics, Public Administration and Public Administration Management
2. Leadership and Leadership Management
3. Budget and Resource Management
4. Technological Management
5. Innovation and Quality
6. Internationalization and prospective
I found the course very appealing, and I'm very pleased to find the Portuguese Public Sector is narrowing the gap to us in the private world :)
Good luck for your exam, dad :)
Posted by Mário Romano at Sunday, December 03, 2006 0 comments
Labels: Project Management
Friday, December 01, 2006
The importance of Project Management Certification
I was just chatting with a customer this morning, an IT department manager on a large portuguese organization, when he mentioned how much he valued the project management certification process that is taking place on another consulting company that is working for them. I was glad to tell him that the consulting company where I work was one of the first ones to certify project managers at APOGEP, and remains one of the top portuguese companies on regard to certified managers.
This was the first time I felt the Project Management Certification was meaningful for a client. There will be a day in the future were Project Management Certification will be a must in most projects, no doubt about it. But after this morning, this day looks a lot closer :)
Posted by Mário Romano at Friday, December 01, 2006 0 comments
Labels: Project Management
Thursday, November 30, 2006
Microsoft beats Oracle in security showdown
Posted by Mário Romano at Thursday, November 30, 2006 0 comments
Labels: Technology
TFS Permission Manager 1.0
This is one of the costs of the community model: overlapping. The TFS Permission Manager is out, and some overlapping with TFSAdmin is expected. Let the best win :)
Working with Team Foundation Server we have to perform various repeating task related to user declaration and permission setting. I already wrote about TFS permission and tools. Managing permissions is complicated, and from time to time quite frustrating. I've decided that it would be a better use of my time to assemble such a tool than just manually applying permissions again and again...
Posted by Mário Romano at Thursday, November 30, 2006 0 comments
Labels: Development
REF: Table of Cool .NET Tools
Here some some cool .NET tools from MSDN / codeplex Mike Stall's as selected:
Tool | Summary | Where to get it | Links |
CLR Profiler | Easy way to measure memory performance for managed apps. | Download for .NET 2.0, .NET 1.1 | Tutorial |
Perf Console | Awesome for analyzing performance issues for apps. This makes perf analysis surprisingly easy to do and is perfect for the non-perf person. | Download | Demo, details |
Power Shell | A shell scripting language that's infinitely better than batch files. | Download | Tutorial, Blog, MSDN |
Iron Python | Python on .NET | See link on homepage. Source code | Homepage, Tutorial included in download. |
MS Build | Way better than NMake. | Included in .NET redist. | Tutorial, Blog, Forum |
MDbg | Managed wrappers for debugging managed apps. | Download (Also in the SDK) | Forum, Other Links |
Posted by Mário Romano at Thursday, November 30, 2006 0 comments
Labels: Development
Wednesday, November 29, 2006
Windows Vista on an old laptop
After several installations on some up to date machines, I decided to have a go on an old laptop.
The Specs
Celeron 600MHz, 512 MB RAM
The Pre-Instalation Process
The installation started asking for:
- Documents and Settings Transfer
- Hardware advisor application
I chose to upgrade from XP, and the installer throw me the exact number of few question I was expecting. This was an fresh XP installation I did a month ago. I used Office and Visual Studio, and was quite pleased with the response I got from such an old CPU.
The installation process was, as expected, lengthy (over 6H!). The installer didn't try to predict the ETA, just said something like "Your upgrade may take several hours to complete". Well done, Microsoft, nobody will accuse you of failing the installations ETAs again :)
Software upgrade results
The upgrade went smoothly except for Visual Studio 2005 that stop working, forcing a repair.
Hardware upgrade results
The hardware recognition was satisfactory. It failed to recognize my BlueTooth dongle, and some of the notebook utilities.
The real problem was the video adapter - it's using the SVGA standart driver. So we cannot expect much for video performance. I would call it a fair performance for a standart SVGA driver.
The Veredict
From a not so slow as expected XP installation, I successfully upgraded it to a not too much slower Vista.
I specially noticed some overhead on explorer itself - much of it probably dued to the SVGA standart driver and the fact that this was an upgrade, not a clean install - please note that the hard disk is an old 4200 rpm.
I know this notebook has way too much memory for what a Celeron at 600 were used to. But the fact is that in much of the time, it works better than my other XP notebook, a Celeron 1100 with 128MB of memory (this was the notebook were I've tried to install Ubunto in quest of better responsiveness , only to rollback to XP again...)
Bottom line is: I'll stick with Vista! But XP still has an advantage, at least on memory consumption. So let there be memory.
[update information]
One huge overhead I've been experiencing over XP is on file system access. For instance, the security information change does something like 2 changes per second! Copy from and to the same disk displays 40 bytes/sec!... And yes, advanced performance is enabled - in despair...
Posted by Mário Romano at Wednesday, November 29, 2006 0 comments
Labels: Operating Systems
TeamWord 1.0beta
Here's a must for Project Managers who hasn't Visual Studio Installed not want to use the Web Interface:
TeamWord is add-in created with .NET 2.0 for Microsoft Word 2003 to enable users (analytics, programmers, project managers etc.) that use Microsoft Team Foundation Server for work item tracking to use Word as the front-end for editing work items. TeamWord allows user to insert work item directly in an existing document, thus allowing tracking work item status from the place of their origin.
For example - when writing a meeting summary, you can add a work item for each problem, each of it in a different Team Project, assign these work items to the corresponding persons etc. And after that, to see if everything has been done, you don’t have to open up Team Explorer or other application - just open the same Word document and it will load all information for these work items right back in your document.
Posted by Mário Romano at Wednesday, November 29, 2006 0 comments
Labels: Project Management, Tools
Tuesday, November 28, 2006
Managing distance
I've been retained at home with a food intoxication for a couple of days.
Has I was still able to work, I've been trying the remote work paradigm. This are my first impressions:
Positive
- much lesser interruptions - I could actually clean up my inbox :)
- communication over teleconference or IM is hardly a substitute for direct contact
- seriously missed the human contact - I frequently ended up over asking for project status!
I don't remember where I got it, but somewhere I read something like "there's a distance limit to manage teams, and this limit is about 30 feet". Ok, now seriously, this limit was for a specific type of team (a team developing a new product, if I remember it correctly).
For over 30 feet, big cultural changes must happen...
Posted by Mário Romano at Tuesday, November 28, 2006 0 comments
Labels: Project Management
New Application Block: Validation Application Block
Tom Hollander is announcing the Validation Application Block.
This is one of the blocks I believe most enterprise libs has implemented, so I'm looking forward to port our implementation to p&p's one.
Posted by Mário Romano at Tuesday, November 28, 2006 0 comments
Labels: architecture
Monday, November 27, 2006
Anders Hejlsberg and Chris McConnell's reflections
Anders Hejlsberg and Chris McConnell: Reflections on LINQ, Desktop Search, WinFS, Functional and Intentional Programming is a video you just can't miss.
This interview started justifying WinFS dropout. McConnell identifies WinFS keypoints as:
. SQL Engine
. standart Schema
. Object Mapping 'stuff'
McConnell advocates LINQ as a better Object Mapping, and Desktop Search Engine as providing a schema that is a lot more practical at this point.
Hejlsberg is also on a pragmatic mood. He believes the smooth introduction of new paradigms to the programming model people already are familiarized ("mainstream more statically typed languages like C#") is the way to go. He also believes that "one of the really interesting aspects of functional programming is that for a certain class of problems if you can express them functionally you stand in a much better chance of executing them efficiently on many core machines."
One last thing worth mentioning on the Intentional Programming arena: "to what extend we can teach programmers not to write instances of the program, but rather write the classes (the code generators)". Yeap, I can relate to that.
Posted by Mário Romano at Monday, November 27, 2006 0 comments
Labels: architecture
Sunday, November 26, 2006
Can a Manager Be a Techie and Survive?
Though in an different perspective from my posting, the article that triggered it was this one.
Some people say that good managers should not be technical at all. Others say the exact opposite. I say: it depends...
Yes is true, throwing to much attention to technical issues can divert you from a broader management view. But it's also true that on some particular areas the technical baggage can help you creating the perspective view some managers lack.
And yes, as a general rule of thumb, managers should have their masters in management, not in technology. But don't we all know excellent managers that are still mad about technology?
One thing is for sure: when overlapping management and technical roles, be sure to "change your role hat" accordingly with what you are doing - messing this hats can and will be harmful to your projects.
Posted by Mário Romano at Sunday, November 26, 2006 0 comments
Labels: Project Management
Friday, November 24, 2006
What the World is saying about LINQ
I was following some treads about LINQ, when I stumbled uppon this article.
The reference that I just loved is:
LINQ is divine but DLINQ is a delinquent. It gives programmers too much power and makes programming against data way too easy. Is nothing sacred anymore?
Posted by Mário Romano at Friday, November 24, 2006 0 comments
Labels: architecture, Development, Fun
Thursday, November 23, 2006
GUI Architectures
In this fabulous article (presently as WIP), Fowler presents us with different approaches over rich client architectures.
He ends the article stating:
In the past few years there's been a strong fashion for writing self-testing code. Despite being the last person to ask about fashion sense, this is a movement that I'm thoroughly immersed in. Many of my colleagues are big fans of xUnit frameworks, automated regression tests, Test-Driven Development, Continuous Integration and similar buzzwords.When people talk about self-testing code user-interfaces quickly raise their head as a problem. Many people find that testing GUIs to be somewhere between tough and impossible. This is largely because UIs are tightly coupled into the overall UI environment and difficult to tease apart and test in pieces.
Sometimes this test difficulty is over-stated. You can often get surprisingly far by creating widgets and manipulating them in test code. But there are occasions where this is impossible, you miss important interactions, there are threading issues, and the tests are too slow to run.
As a result there's been a steady movement to design UIs in such a way that minimizes the behavior in objects that are awkward to test. Michael Feathers crisply summed up this approach in The Humble Dialog Box. Gerard Meszaros generalized this notion to idea of a Humble Object - any object that is difficult to test should have minimal behavior. That way if we are unable to include it in our test suites we minimize the chances of an undetected failure.
The Humble Dialog Box paper uses a presenter, but in a much deeper way than the original MVP. Not just does the presenter decide how to react to user events, it also handles the population of data in the UI widgets themselves. As a result the widgets no longer have, nor need, visibility to the model; they form a Passive View, manipulated by the presenter.
This isn't the only way to make the UI humble. Another approach is to use Presentation Model, although then you do need a bit more behavior in the widgets, enough for the widgets to know how to map themselves to the Presentation Model.
The key to both approaches is that by testing the presenter or by testing the presentation model, you test most of the risk of the UI without having to touch the hard-to-test widgets.
With Presentation Model you do this by having all the actual decision making made by the Presentation Model. All user events and display logic is routed to the Presentation Model, so that all the widgets have to do is map themselves to properties of the Presentation Model. You can then test most of the behavior of the Presentation Model without any widgets being present - the only remaining risk lies in the widget mapping. Provided that this is simple you can live with not testing it. In this case the screen isn't quite as humble as with the Passive View approach, but the difference is small.
Since Passive View makes the widgets entirely humble, without even a mapping present, Passive View eliminates even the small risk present with Presentation Model. The cost however is that you need a Test Double to mimic the screen during your test runs - which is extra machinery you need to build.
A similar trade-off exists with Supervising Controller. Having the view do simple mappings introduces some risk but with the benefit (as with Presentation Model) of being able to specify simple mapping declaratively. Mappings will tend to be smaller for Supervising Controller than for Presentation Model as even complex updates will be determined by the Presentation Model and mapped, while a Supervising Controller will manipulate the widgets for complex cases without any mapping involved.
And finally, don't miss this contribution from acknowledgements:
... Many people in those days considered it impractical to use a virtual machine. I wonder what our prior selves would have thought to see me running Smalltalk 80 in a virtual machine written in VisualWorks running in the VisualWorks virtual machine on Windows XP running in a VMware virtual machine running on Ubuntu.
Here's virtual to you :)
Posted by Mário Romano at Thursday, November 23, 2006 0 comments
Labels: architecture
Concepts behind the C# 3.0 language
Tomas Petricek has just posted this article where he presents the influence presence from previous research and experimental languages developed at Microsoft Research - namely F# and Cω.
Posted by Mário Romano at Thursday, November 23, 2006 0 comments
Labels: Development
Wednesday, November 22, 2006
Top 3 Free Product Key Finder Programs
If you're preparing to reinstall Microsoft Windows or Microsoft Office you will need to locate your copy of the software's product key (CD key). Normally this product key is located with the manual or CD that came with your software.
If you've lost your product key you can often times find it in the registry but this can be very difficult to impossible to retrieve manually. Luckily, there are many free key finder programs available to help.
Below are the top 3 free key finder programs.
1) Magical Jelly Bean Keyfinder
The Magical Jelly Bean Keyfinder program is a free utility that retrieves product keys from the registry. It also has the ability to change the product key for the Windows XP operating system if need be.
Advantages include very small size, ease of use, no installation required, instant display of product keys and multiple product key saving options.
Finds Keys for Operating Systems: Microsoft Windows 95, Windows 98, Windows ME, Windows NT4, Windows 2000, Windows XP, Windows Server 2003 and Windows Vista.
Finds Keys for Other Software: Microsoft Office 97, Office XP and Office 2003.
2) WinKeyFinder
The WinKeyFinder program is another free utility that retrieves product keys from the Windows registry.
Advantages include small program size, no installation required, and additional features such as a password generator and registered user information.
Finds Keys for Operating Systems: Microsoft Windows 98, Windows ME, Windows 2000, Windows XP and Windows Server 2003.
Finds Keys for Other Software: Microsoft Office 97, Office 2000, Office XP and Office 2003.
3) RockXP
RockXP is another free program that retrieves lost product keys from the registry.
Advantages include small program size, no installation required, and additional features such as a password generator and password retriever.
Finds Keys for Operating Systems: Microsoft Windows XP.
Finds Keys for Other Software: Microsoft Office 2003.
Posted by Mário Romano at Wednesday, November 22, 2006 0 comments
Labels: Tools
An introductory guide to Windows Memory Management
Now that Vista's Task Manager changed over good old XP, I deeply recommend reading a good article about Windows Memory Management. I've just found this one.
Posted by Mário Romano at Wednesday, November 22, 2006 0 comments
Labels: Operating Systems
Tuesday, November 21, 2006
2007 Trends, according to Evdemon
Here are Evdemon's 2007 trends - well, mostly BPM trends, but nevertheless, trends :)
I specially like the last:
10. IT finally admits that there is no silver bullet. Every year I hope to see this happen and every year my hopes are crushed by buzz-word of the minute hype machines. Hey I can dream, can’t I?
Posted by Mário Romano at Tuesday, November 21, 2006 0 comments
Labels: architecture
Monday, November 20, 2006
Ending SQL dependency
Yes, I know, this is one of those articles that surely will make many people angry.
For years I want to stop seeing so much SQL in the applications I architect!
Why? Because I believe that DBAs are too much a limited and expensive resource to use for most of our application design. And because SQL by itself doesn't promote strongly typing, or Intellisense discoverability. Among others.
And so I'm a firm believer on ORMs. More, I believe that the problems stated in the The Vietnam of Computer Science will be largely surpassed by the benefits it brings - even before the arrival of the LINQ initiative.
So I keep dreaming on applications where only 5% of the relational algebra is made in SQL - 0% in the long term. And the dream is feasible for most of my application. Except for the #&%$"&%$# most applications must have: the migration!
Yes, for the migration we still must depend heavily on SQL. When the ORM war is over, we'll still have this one to battle.
And even those are nothing but intermediate steps on a much broader roadmap. But that's a story for a future posting...
Posted by Mário Romano at Monday, November 20, 2006 1 comments
Labels: architecture, Development
Comunidade MOSS Portuguesa (MOSS Portuguese community)
A new MOSS community is born, the Comunidade MOSS Portuguesa (MOSS Portuguese Community) is created with the objective of providing MOSS articles, opinions and contents in Portuguese.
The blog is divided in 4 main categories:
- MOSS (Microsoft Office Sharepoint Server 2007)
- WSS (Windows Sharepoint Services 3.0)
- WCM (Web Content Management)
- Shared Services
The founders are my good friends Ricardo Magalhães and Bruno Valente, from Link Consulting and Microsoft Portugal.
Posted by Mário Romano at Monday, November 20, 2006 0 comments
Labels: Education, Technology
Announcing SDLC-in-a-Box version 2.0
Announcing SDLC-in-a-Box version 2.0!
We [they] are pleased to announce the release of SDLC-in-a-Box version 2.0! With more than 75 partners in over 10 countries already signed up, we are excited about partners being more prepared than ever to deliver Visual Studio Team System deep-dive and implementation training for customers. We encourage you to visit the site, become familiar with the program, and engage your Microsoft account team and Training or Consulting Partner to begin the Application Lifecycle Management assessment within your own organization. If you are a partner, sign up now, download SDLC-in-a-Box, and start training now!
Posted by Mário Romano at Monday, November 20, 2006 0 comments
Labels: architecture, Development, Education
Problems installing Office 2007
Before installing Office 2007, please review 2007 Microsoft Office System Known Issues/ReadMe.
Office setup continues to lack the assertive it needed, so I'm afraid the reading of this document cannot be avoid for the most of us that are installing Office on an long-time production desktop :)
Important update:
After reading the previous link, I still couldn't install Office 2K7 until I ran into this great link from Scott Hanselman. Following the link, I found myUninst, a nice tool for uninstalling those unlisted zoombies...
If it still doesn't work, try the following links:
Posted by Mário Romano at Monday, November 20, 2006 0 comments
Labels: Tools
Saturday, November 18, 2006
For much that I hatted Monad..
Let's start making sure I make my self clear: I still hate the Windows Powershell. Probably because each time I think about Monad, silly scripting languages like bash and VBScript come to my mind. And surely because I hate the easiness that is sold with these technologies, on which I don't believe. Did I mention I also hate the over-simplification and sourcecode savings that annoy me so much?
But as much anti PowerShell as I am, I could't help test driving it. Here's the story:
When I VPN to my company, I usually maintain my previous gateway and add the routing entries I need to work on my company's network. So I decided to do automate the operation using the Powershell. Here's the script:
#
# start VPN
#
RASDIAL "myVPN"
#
# get my VPN IP
#
$colItems = get-wmiobject -class "Win32_NetworkAdapterConfiguration" -computername .
$myIP = ""
foreach ($objItem in $colItems)
{
if ($objItem.Description -like "*PPP*")
{
$myIP = $objItem.IPAddress
}
}
write-host "my IP: " $myIP
#
# establish necessary manual routing
#
route add mySubnet0MASK 255.255.255.0 $myIP mySubnet1
route addmySubnet2 MASK 255.255.255.0 $myIP
route addMASK 255.255.255.0 $myIP
My conclusion is: for most silly Monad seems to be, there is a really need for scripting in this area. And for much it bothers me, not only to the IT people...
Posted by Mário Romano at Saturday, November 18, 2006 0 comments
Labels: Technology
Project Management Certification - The Workshop
I've just concluded my level 'C' certification workshop. It was a lot more fun then the previous exam I did for the level 'D' certification. It's the final stage for the APOGEP level 'C' certification. Earier I posted the certification stages.
The certification had 8 candidates - 7 to 'C' level and a 'B' level one, and almost as much people from APOGEP. It was an all day event in a nice hotel in Lisboa's downtown.
The workshop had the 3 components:
- a project audit
- a project role playing
- an interview
Has this was part of an examination, obviously only the auditing capabilities of the process were involved. These processes have an educational potential I feal we have to unleash - project auditing and role playing seems like a great way to share project management best practices, and to help us correcting some limitations we all have.
Finally the workshop ended with an interview, where we defended the report we been working on in the last months. The report was a resumee of our project management experience.
And so my project management workshop is over. Hope that the results of the exam will be positive for all of us.
Posted by Mário Romano at Saturday, November 18, 2006 0 comments
Labels: Education, Project Management
Enterprise Library for .NET Framework 2.0: Performance Comparison 64-bit vs. 32-bit
P&P team has just release this analysis of the Enterprise Library deployment in both a 32-bit (2 and 4 processor) and 64-bit (2 and 4 processor) environment, where they examine their relative performance to a 32-bit 2 processor server.
The Analysis
The following analysis is of the Enterprise Library deployment in both a 32-bit (2 and 4 processor) and 64-bit (2 and 4 processor) environment and examines their relative performance to a 32-bit 2 processor server. To get a realistic comparison to measure since the 32-bit and 64-bit worlds have differences, the setups used were designed to be as equivalent as possible. The goal was to obtain the relative performance measurements of the Enterprise Library Logging Application Block, Caching Application Block, Data Access Application Block and the scalability from going from a 2 to a 4 bit processor arrangement in each environment. The various configurations and measurement results are below.
Some Fast Answers
- Q: How long did it take to convert Enterprise Library from 32 bit to 64 bit?
- A: None, since the .NET Framework uses an intermediate language which is processor independent and uses a just-in-time compiler to convert it to machine code as required by the deployment environment. So it's not a recompile—rather just run it on a 64-bit .NET-based machine—although, there can be specific issues see the section "Moving to the 64-Bit World."
- Q: Does the Enterprise Library scale?
- A: Yes, the results show a 50 to 70 % gain in the tested scenarios going from a 2 to 4 processor environment regardless if it's 32 bit or 64 bit, see section 4 for details.
- Q: What are the gains in going 64 bit?
- A: Scabililty, see section "Scabililty View of the Caching Block" for details
Posted by Mário Romano at Saturday, November 18, 2006 0 comments
Labels: architecture
Friday, November 17, 2006
Starter Kits for Visual Web Developer
Starter Kits for Visual Web Developer
The ASP.NET 2.0 Starter Kits for Visual Web Developer are fully functional sample applications to help you learn ASP.NET 2.0 and accomplish common Web development scenarios. Each sample is complete and well-documented so that you can use the code to kick start your Web projects today!
These kits, once downloaded are integrated directly into the Visual Web Developer 2005 Express Edition or Visual Studio 2005 experience. After downloading and installing the starter kits, please provide feedback on the ASP.NET forums.
Small Business Site Starter Kit (New!)
The Small Business Starter Kit provides a sample of a business promotion website suitable for small and medium-sized businesses. It provides a template for customizing and creating a site for your own business out-of-the-box, with advanced features including integration with SQL and XML data sources for content and data management.
Personal Web Site Starter Kit
A typical personal site that includes a photo album system. Also included are static pages for a resume and links. Comes in your choice of white or black... just change the theme!
» Download the Personal Web Site Starter Kit
Administrator login:
Username: Admin
Password: 1.admin.1
Member login:
Username: Friend
Password: 1.friend.1
Club Web Site Starter Kit
A starting point for creating a web site for your club or organization. Includes a news posting, calendaring, member directory, and photo album systems. Create news announcements and news articles with photos or links to a photo album. Create and view Membership lists of club members. Create photo albums and share the photos from your club activities.
» Download the Club Web Site Starter Kit
Administrator login:
Username: Admin
Password: 1.admin.1
Update!
Visit the By the Community, For the Community page and view the Extended Club Site Starter Kit created by Brendon Schwartz.
Time Tracker Starter Kit
A business web application for keeping track of hours spent on a project with the ability to handle multiple resources as well as multiple projects.
» Download the Time Tracker Starter Kit
Manager login:
Username: Manager
Password: 1.manager.1
Consultant login:
Username: Consultant
Password: 1.consultant.1
TheBeerHouse: CMS & E-commerce Site Starter Kit
TheBeerHouse starter kit enables you to implement a website with functionality typically associated with a
Paypal eCommerce Site Starter Kit
The PayPal-enabled eCommerce Starter Kit is an extensible open source web application that allows you to setup and manage your own ecommerce Web site.
DotNetNuke® Portal Starter Kit
DotNetNuke is a Web Application Framework ideal for creating and deploying projects such as commercial web sites, corporate intranets and extranets, online publishing portals, and custom vertical applications.
Job Site Starter Kit
Job Site Starter Kit is a web application that provides a platform for candidates seeking job and the employers to share their needs. The starter kit demonstrates many new features of ASP.NET 2.0 including themes, master pages, new data controls, membership, roles and profiles
Posted by Mário Romano at Friday, November 17, 2006 0 comments
Labels: Development