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

Sunday, March 30, 2008


I'm stepping out of my territory to talk about this framework I know nothing about: OpenXava. OpenXava is a framework for creating Enterprise Applications with Java based solely on the annotated model (the Controllers are reused and the View are generated automatically).

Microsoft is heading to the same point through a different path - DSL Tooling. ASP.NET Dynamic Data Support does something from the model defined.

But this framework seems to be ahead in terms of maturity and implementation. This is the way I imagine implementing some of our enterprise applications on the near future, designing and annotating the model (through designers, hopefully not code), overriding extending and customizing a bit, arming some events when needed and creating validators, business rules and processors.

Saturday, March 29, 2008

Saved by Parallel Extensions!

Let's start by admitting the obvious: normally I don't really need a reason to use a new technology, just doing it for the kicks is good enough for me. I've been using Parallel extensions for a while, but didn't found any real excuse for using it on my typical web projects.

I was lucky enough to get a great R&D project on Search Algorithms, so I've decided to give Parallel Extensions a real try out.

The opportunity arrived while analyzing the log data: we identified a 13 minutes operation. This operation did some heavy computation over a 4 dimension array (well, actually a 2 dimension array of HashTables keyed as duples, the last 2 dimension are sparse). We identified that the dimensions were used independently from each other, and decided to work over a 700 iteration loop.

All we've had to do was changing:

    for (int iterator = 0; iterator < totalIterations; iterator++)


    System.Threading.Parallel.For(0, totalIterations, iterator =>

As expected, we doubled the operation response time. Next week we will be running some tests over an 8-core equipment, so I hope the 13 minutes spent over an old Dual Core will just be pulverized.

The next step in the roadmap will be: grid computing. So lets hope for more lengthy operations so I can get my hands on www.alchemi.net or ngrid.sourceforge.net.

PS: actually, though the loop iteration were independent from each other, they were dependent upon a variable that we had to lock - with little or no performance cost.

Upgrading to Windows Mobile 6

Yes, I know, why does a guy like me, the typical geek hooked up with the next beta OS, waited so long to upgrade WM from 5 to 6? Well, a phone is a phone, and I must confess: I was really afraid something wrong could happen, so the backup process was a lengthy one.

This weekend I've finally decided to upgrade. I've started by copying all I could to my desktop. Then synced up my HTC 3300, copied some configuration, downloaded a trial version of Sprite Backup and started the final backup procedures.

One of the reason I've chosen HTC 3300 over 3600 was the promise of WM6 support, and it paid off. Just registered an account and the serial number, and downloaded the official ROM (in Portuguese!).

The ROM upgrade couldn't be more simple, and 10 minutes later WM6 was up and running, with all the HTC software installed. Tomtom was also installed, the only thing I've really missed were the input modes (now I only have the virtual keyboard...).

Restoring data was incredibly simple using Sprite Backup, it even restored the phone call list. The only configuration I'll have to restore manually is the network/dialup/VPN connection settings. You can always depend only on Active Sync to restore most of your needs.

So if you were afraid to get into a messy upgrade process, you can loose you fears. Your phone will probably be up and running in half an hour.

PS: my provider is TMN, and yes, the phone still works :)

Wednesday, March 26, 2008

New Log Reporting, Database Management, and other cool admin modules for IIS 7

Here's yet another great post from Guthrie, IIS 7 Admin Pack Preview 1:

  • Database Manager: [alternative to SQL Server Management Studio?] Built-in SQL Server database management, including the ability to create, delete, and edit tables and indexes, create/edit SPROCs and execute custom queries.  Because it is integrated in the IIS administration tool it all works over HTTP/SSL - which means you can use the module to remotely manage your hosted applications (even with low-cost shared hosting accounts), without having to expose your database directly on the Internet.

  • Log Reports: [alternative to WebAlizer?] Built-in report visualization with charting support for log files data.  Full range selection and custom chart creation is supported, as well as the ability to print or save reports.  Like the database manager you can use this module remotely over HTTP/SSL - which means it works in remote shared hosting scenarios.

  • Configuration Editor: This is a power module that provides complete control over editing all web.config settings within the admin tool.  You can configure it to track the changes you make using the UI and have it auto-generate configuration change scripts that you can then save and tweak to re-run later in an automated way.

  • Request Filtering UI: This admin module provides more control over the new request filtering feature in IIS7.  Check out Carlos' blog post here for details on how to use it.

  • .NET Authorization: This admin module provides a custom authorization rules editor which allows you to more easily manage the ASP.NET <authorization> configuration section.

  • FastCGI UI: This admin module provides more support for editing all the new <fastCGI> settings (for when you use FastCGI modules with IIS7 like PHP).

Where did mail go on my control panel? (W2K8 64bits)

Well, it seems like Microsoft didn't quite finished the 64-bit portings, so you'll have to get to "32-bit Control Panel". And there you go, now I can hookup Outlook with Exchange :)

Messenger Live on Windows Server 2008 64-bits

Strangely enough, Live Messenger refuses to install on Windows Server 2008-bits. It runs beautifully, if given a chance, it just doesn't work. Oh, well...

Managing Stored Credentials

Windows stores credentials (the logon name and password) for users who access network resources. You can manage this credential through:

rundll32.exe keymgr.dll,KRShowKeyMgr

Works in Vista too!


A friend of mine just sent me an alternative way through the UI:

Control Panel > User Accounts > Manage User Accounts > Advanced -> Manage Passwords

Tuesday, March 25, 2008

ASP.NET MVC Source Code

Microsoft shared ASP.NET MVC source code. Microsoft is embracing open source in a controlled way:

... the license doesn't enable you to redistribute your custom binary version of ASP.NET MVC (we want to avoid having multiple incompatible ASP.NET MVC versions floating around and colliding with each other).  But it does enable you to make fixes to the code, rebuild it, and avoid getting blocked by an interim bug you can't work around.

"Classic" open source people may see this as a draconian kind of open source, but it kind of makes sense for companies like Microsoft, that traditionally maintain control over their sources, and for developers who gain the capability to fix problems. I will really be surprised if this model won't start being used by other companies.

And above all, makes room for "truly" open source products like MonoRail :)

Watch out from WM house cleaning...

I needed some space on my HTC 3300 so I've decided to clean up "temporary files" directory directly from the file system. Big mistake, internet explorer stopped working. More, Google Maps and Opera Mini downloads stopped working too.

Googling about it didn't help, so I've done the only thing I could: copied a "temporary files" directory from a friend's device. Luckily, It worked!


Oops, false alarm, it is still doesn't work. I've tested it connected to my desktop - it works that way...

Add Windows Explorer to Visual Studio

Here's a great tip:

Tools > External Tools... > Add:
Title: Windows Explorer
Command: explorer.exe
Arguments: /select,"$(ItemPath)"

A must!

Sunday, March 23, 2008

Windows Server 2008 64-bits as a desktop

I've just installed Windows Server 2008 on my Dell D830. It is just awesome!

For a start, the installation was as simple as it could get. This is the first time I've installed Windows Server 2008 on a non virtualized environment, so the 10 minutes and 2 dialogs installation was greatly appreciated.

It got most of the hardware running (except for Bluetooth). It did recognize the networking devices, wired and wireless, so I could get to the tuned drivers with great ease. Dell D830 doesn't support W2K8 yet, so I've installed Vista 64bit drivers. The Bluetooth drivers didn't work all the way, so I tried the Toshiba drivers (http://aps2.toshiba-tro.de/bluetooth/index.php?page=download) with success.

Windows Server 2008 experience as desktop is great. Most of the tweaking to Vistalize the user experience is pretty intuitive (Windows Server 2008 tends to be predictable and intuitive - Initial Configuration and Server Manager greatly simplify the process). Then all you  have to do is follow http://www.win2008workstation.com/ to end up the tuning.

Three negative notes:

  • it still sucks too much memory - from 450 to 750MB (depending on loaded devices and available memory?);
  • Hyper-V's doesn't seem as desktopable as Windows 2008 Server;
  • Hyper-V disables standby and hibernation, greatly lowering the laptop experience! :(

I'll try the 32 bit version on the next weekend. For the time being it seems easy to choose Windows Server 2008 64-bits for hardware with at least 4GB - the extra 512MB are recovered my mapping the hole 4GB. But some developers will rather have the extra 512MB XP gives them on a 2GB configuration.

Saturday, March 22, 2008

Back in action

These last weeks have been just crazy! We've been preparing the Dynamics Nav advanced distribution presentation and the techdays.pt stand (yes, mom, all those years studying to end up selling at a fair :S ). Now I've finally got some time to blog and to install Windows Server 2008 as my desktop - an experience soon to be posted on devCatharsis.

I've been working a lot over RFID for the last year, so my presentations evolved mostly around the supply chain RFIDization. Beside Nav itself, we've presented a standard integration with an external ERP (a cool RFID-enabled demo application from Microsoft China), and finally closed the supply chain circuit with our Dynamics Nav RFID Extension, responsible for the palette and contents reception and checking against the previously received ASN (Advanced Shipping Notice). Dynamics NAV RFID Extension relies on BizTalk RFID and WCF to leverage the communication between the interrogators and Nav 4 & 5.

Link Consulting has presented some cool sessions on techday.pt, namely:

RFID is not all of our offering we presented at techdays.pt, more like my present focus. On the stand we also presented:

  • SmartCities
    • Digital Parkmeter
  • Internet of Things
    • Dynamics NAV + RFID
    • Mobile Ticketing
  • Internet of Services
    • eDocLink document management
    • eGovernment solutions (over MOSS)
    • Process Automation
    • Urban Management

And that's it. Hopefully the next post will be a geekier one :)

Thursday, March 13, 2008

Vista revisitated

Here's a great Vista review from a very demanding guy - you'll find his opinion over Windows way more independent than mine :)  He got me on Vista in the last year, so here's my turn to even the odds.

Bottom line is: Vista can still surprise some of the most demanding users - even if they have to make use of TweakVI.

Now that Windows Server 2008 is making a trend as workstation for developing geeks (including me on my next laptop, hopefully), it's good to see that Vista is not as bad as we thought.

Prism's first drop

Let's see if Prism can go where Acropolis couldn't (yes, I know, they have different objectives). From Prism's site:

"Prism" is a set of assets for developing Composite WPF applications. "Prism" includes a reference implementation, reusable library code and pattern guidance.

"Prism" addresses the challenges around building complex enterprise WPF applications. As the complexity increases and the teams grow, the application becomes increasingly difficult to maintain. Using "Prism" enables designing a composite application that is composed of many discrete, loosely coupled modules. These modules can be developed, tested and deployed by separate teams.

Wednesday, March 12, 2008

Microsoft Search Server 2008

My good friend Bruno Valente is presenting this session over Microsoft Search Server 2008 at Techdays Portugal. Don't miss it!

Tuesday, March 11, 2008

Windows Live FolderShare

Just shipped.

We can use FolderShare to create a mirrored image of so they're all the same on your computers. They are experiencing some performance problems, so you'll probably have to wait to try it.

I had a previous version installed - I don't remember if this was a beta or previous product from a company acquired by Microsoft. The fact is it didn't worth much, hope this is a more solid product.

Sunday, March 09, 2008

IE8 first impressions

I've manage to get some time our from my busy weekend schedule - I'm preparing my Navision RFID extension module, so it is definitely a first impression.

What I found cool:

  • IE8 is considerably faster than IE7 - didn't get to compare it against Firefox3; oh, well, as blazing fast as IE is blazing slow...
  • Add-ons are now first class citizens on IE8;
  • The domain highlight on the link box is just awesome.


  • Searching still happens on a popup dialog...


Ok, the add-in model isn't as cool, independent and sandboxed as the Firefox model... pity...

Saturday, March 08, 2008

Internet Explorer 8 Readiness Toolkit

Looks like Microsoft is learning from past mistakes. On IE8, a readiness toolkit as been just released to help developers and designers preparing for IE8. Here it is.

Friday, March 07, 2008

Mix 08 sessions

The world we live in is getting faster - the Mix videos are already posted at http://sessions.visitmix.com/

Silverlight Tools Beta 1

Silverlight 2 Beta 1 was release today at MIX08. Get it from here, and checkout this installation tips if you get into trouble.

Unfortunately I haven't tried it yet - I'm too busy preparing my RFID participation on Dynamics 5 presentation (here's another link).

Wednesday, March 05, 2008

Benchmarking some servers

We have a bunch of Dell PowerEdge 2950 servers as virtual machines servers for our development environments. On our latest server someone made a mistake and ordered a 2 RAID1 topology, not our typical 4 to 6 RAID5 topology.

We ordered 2 extra disks and reinstalled the server. Here's how it benchmarked as 2 disks on RAID1:

RAID1 x 2 disks

Here's how it benchmarks now as 4 disks on RAID5:

RAID5 x 4 disks

As expected we got a great improvement with little investment, still having a fault tolerant scenario compatible with our development server deeds. A higher sustain rate sequential read speed. If we had 6 disks, I'd expect still a better performance.

NOTE: we didn't actually add 2 disks, we replace 2 x 300GB disks with 4 x 400GB ones.

Tuesday, March 04, 2008

Silverlight getting some unexpected traction

Microsoft-Watch.com announced Nokia will support Silverlight on its Symbian OS S60 platform. Nokia sells more mobile phones and ships more mobile operating systems than any other, so Silverlight is getting some serious traction.

Monday, March 03, 2008

AJAX Control Toolkit 3.0.20229

AJAX Control Toolkit v3.0.20229 has just been released as the official release for Visual Studio 2008 and the .NET 3.5 Framework. Download it from CodePlex.

Hear about it in davidhayden.com

Sunday, March 02, 2008

Hot Chicks Writing Code Naked

Here's Sara. Here's Sara in action. And here's Mark Miller being silly and apologizing to Sara.

.NET Reflector Add-Ins

Here's a great list of add-ins for .NET Reflector. Here's one of my favorites: Graph: draw assembly dependency graphs and IL graphs.

Saturday, March 01, 2008

Vista (in)capable

One of the reasons I write this blog is to log what is relevant to me for future reference. Most of these are about cool technology, some about people, other about practices. Every now and then I have to log bad practices from Apple or Google. Today I'm afraid I have to blog about a Microsoft poor practice.

The Vista capable logo is a well covered subject, so I'll stick to the basics: Microsoft helped their friends from Intel by vowing as Vista Capable hardware that was clearly incapable of coping with Vista's hungry requests.

It's sad. Let's hope that the incapable lawyers/marketing at Microsoft that decided to stick that label and to defy EU sanctions return Microsoft's control to engineers. Ok, to executives that were once engineers...

MSDN Transfer Manager

Sometimes "Microsoft File Transfer Manager" stops downloading. When this happens, we often have to restart it. Here's where we can load it from:

%SYSTEMROOT%\Downloaded Program Files\TransferMgr.exe


Eazfuscator.NET is a free obfuscator for .NET platform. Here are the key features:

  • Easy to use as 1-2-3
  • Automatic code protection with variety of supported obfuscation techniques
  • Automatic code optimization
  • Supports .NET Framework versions 2.0, 3.0 and 3.5
  • Can obfuscate any 100% managed .NET assembly
  • Provides revolutionarily innovative and easy to use GUI interface as well as classical command line interface
  • Microsoft Visual Studio integration. Supported versions are Microsoft Visual Studio 2005 and 2008 including Express versions
  • Supports automatic builds

Common .NET 2.0 helper functions and custom classes.

Here a simple common .NET 2.0 helper function library. It is written in VB, a language I have a problem with - for no good reason, I might add. Probably not the end of my silly tabu, but definitely an honest attempt.

Development Catharsis :: Copyright 2006 Mário Romano