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

Tuesday, May 27, 2008

Polishing OSs...

Here's a great media player for Linux: Banshee 1.0 beta2.

As noted by ArsTecnica:

The latest beta, which was released on Friday, offers a wide variety of impressive features and a highly polished user interface.

Uhmm, highly polished user interface, here's something I miss on Linux. Some of my friends are great Linux fanatics and just refuse to accept Linux as a desktop still lacks the final polishing that we can get with Vista and Mac OS. But they're heading the right way.

An OS is not an isolated island, it depends on what we put there. And when great applications like Banshee appear they help lowering the distance between mainstream OSs built with the contribution of designers and user interface gurus, and Linux, built with the contribution of geeks. Though I must confess, Linux has one advantage: the ability to collect new concepts out of the mainstream packaged body of knowledge, try out new solutions with innovative users, mostly unattached to the obligation to maintain running businesses.

Man, I'm loving the time we live in...

Monday, May 26, 2008

Isn't pipeline a great pattern?

Yesterday I finally bought a grip for my old EOS 10D. I got it on eBay, and when I tried to pay with VISA I've found out it had been canceled - my bank canceled the old one and I'm waiting for the new one to get through mail...

Anyway, I did pay for the grip. How? Experimenting the beautiful pattern of pipelining. Here's how:

  1. on my homebanking, got a token to MBNET (Portuguese temporary VISA service);
  2. with this token, got a temporary VISA card;
  3. with this temporary VISA card, registered myself on PayPal;
  4. with my PayPal, sent money to a German guy that is selling the grip.

If these services didn't pipeline, the German guy needed to know how to interact with my Portuguese bank. Isn't pipelining just great?

Sunday, May 25, 2008


It seems like there is a hacked version of Mac OS that runs on non Apple computers. It's called kalyway, and is out there on the torrentsphere. Ok, if not already, it will soon be crippled on a future update, but what the heck, it's fun!

If I had not bought an iMac I'd probably give it a try. As I've written so many times, Mac OS X is a great OS and should be allowed to compete on a free and transparent market. You should go ahead and free Mac OS, Mr. Jobs, if not for other reason, just to annoy me (now that I bough a Mac...) :P


We have been demonstrating a lot of our products, and found out that a great way to do it is with webcasts.

Here's a great tool to create the webcasts: Wink. Wink is a Tutorial and Presentation creation software aimed at creating tutorials on how to use software.

The coolest thing about Wink is that you can easily update your capture webcast. A simple way to describe it: Wink differentiates itself from a simple movie capture, as a .psd file differentiates from a .jpeg format.

Oh, did I mention? It's freeware!

Saturday, May 24, 2008

Like a kid on a candy shop

That's how I feel on my Mac: like a kid on a candy shop!

I'm trying everything I can get my hands on. I've installed macports, an open-source community initiative to design an easy-to-use system for getting, compiling, installing, and upgrading either command-line, X11 or Aqua based open-source software on Mac OS. There are currently 4788 ports there! You just have to type something like:

port install apache2
And that's it! I'm now using macports to install CocoaSharp, a project geared to bridge OS X with the Mono development environment. It seems like I'm getting C# and .NET into XCode.

And Eclipse, the evil brother, also got same space on my drive. Not that I will use it often, but there it is if I get sleepless...

And above all, good old Visual Studio keeps getting most of my attention on my XP VM. With Safari as a browser :)

These are happy days for this bored old developer. I know, as an old guy I should be talking about the good old days of THINK C, Turbo Pascal and MSC 5.1. But the exciting time is now, and is getting better!

PS: ok, the cool and fashionable dynamic languages couldn't get into my disk. As an old man, I'm entitled to some irrational hate, don't I? Maybe one day...

Friday, May 23, 2008

Microsoft Source Analysis for C#

Great little tool. Here's it is:

The ultimate goal of Source Analysis is to allow you to produce elegant, consistent code that your team members and others who view your code will find highly readable.


Specifically, these rules cover the following, in no particular order:

  • Layout of elements, statements, expressions, and query clauses
  • Placement of curly brackets, parenthesis, square brackets, etc
  • Spacing around keywords and operator symbols
  • Line spacing
  • Placement of method parameters within method declarations or method calls
  • Standard ordering of elements within a class
  • Formatting of documentation within element headers and file headers
  • Naming of elements, fields and variables
  • Use of the built-in types
  • Use of access modifiers
  • Allowed contents of files
  • Debugging text

Source Analysis for C# can be downloaded here: https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sourceanalysis.

I've tried it with some LINQ sources, and got this annoying violation:

SA1513: Statements or elements wrapped in curly brackets must be followed by a blank line.

Ok, fair is fair, this was a inner select and this tool predates LINQ. Cool tool.

Thursday, May 22, 2008

Unit testing Silverlight

I am no longer capable of writing code from ground up out of a safe and cosy unit testing environment. The fact is, I never was... Even before the coming of unit tests frameworks I could never design an object model without firing up a separate console application or web page.
So you can imagine the horror when I found out there is no unit testing support for Silverlight!

But there is, it is just hidden as part of the control source code package that you can download here. Heard about it from Jeff Wilcox, that wrote a cool post about Unit Testing in Silverlight. Be sure to get the templates.

PS: hopefully SP1 beta is now supporting Silverlight unit tests. Or it isn't?

Wednesday, May 21, 2008

Hyper-V RC1

Great news, Hyper-V is keeping its schedule. Here it is.


Here's some : Hyper-V RC0 to RC1 Upgrade Considerations:
*Saved-state files are not supported between RC0 and RC1 releases of Hyper-V.  All virtual machine saved states should be discarded before upgrading to RC1, or prior to resuming virtual machines after upgrading to Hyper-V RC1. 

*Online snapshots contain virtual machine save-states and thus online snapshots taken with Hyper-V RC0 are not supported after updating to Hyper-V to RC1.  Either apply any online snapshots and shut down the VM or discard the virtual machine save state associated with the snapshot before or after the update to Hyper-V RC1.

*System Center Virtual Machine Manager 2008 Beta does not support Hyper-V RC1.

*New Integration Components (ICs) must be installed for your supported guest operating systems.  Integration Components are specific to the build of Hyper-V.  RC1 Integration Components for all supported Windows Operating Systems are provided using the ‘Action’ -> ‘Insert Integration Services Setup Disk’ action.

Tuesday, May 20, 2008

VMWare Fusion rocks

What I love in VMWare Fusion:

  • it is incredibly fast;
  • I can project both cores into my good old XP;
  • Unity is just awesome:
    • it is absolutely transparent;
    • if you use the "Application" menu, you'll just don't need to get into the client OS anymore;

I still have a few problems with Fusion:

  • some of my keys are not correctly mapped;
  • disabling Map OS keys only works on Full Screen - there goes F10 on the debugger...
  • it sucks a lot of processing power out the host OS;

And with Apple:

  • dear Mr. Jobs: your obsession with tidiness and design is beginning to get into my nerves:
    • why in G-D's name don't you print the bloody characters on the keyboard? Yes, I know, it would be a geek keyboard, but what can I say, I'm a geek! And as a curly brackets old school geek I'd like to get my curly brackets printed on my beautiful new Portuguese keyboard;
    • ok, from the design point of view it just a beautiful concept, but how in the hell can you justify that such an item as a start button is hidden on the back of the monitor? It's a start button, for crying out loud, it should be discoverable! Self announced! You should make it difficult for people to start it. Placing a standard on/off on the front row would help, but if it isn't possible, I'd consider using the Apple sign :)
    • and what about USB sockets? Why do you think most of the computers nowadays have put them on the front? Hello? To be handy! Not beautiful, just handy!

PS: wouldn't it be nice if Microsoft implemented a Unity like feature on remote desktop?....

Monday, May 19, 2008

Silent gives way to sound

When silent gave way to the sound movies, not all of the stars made a successful passage. We could be experiencing the same experience with the passage from blog to podcast.

Take http://stackoverflow.com/. stackoverflow is an initiative from Joel Spolsky and Jeff Atwood, two of the greatest tech bloggers out there. According to them, stackoverflow is not getting a lot of attention. Are they the first victims of the silent to sound movement?

Let's hope not. One thing is for sure: they can always get back to JoelOnSoftware and CoddingHorror, and that is more than the stars from the silent movies era could. And even if they can't make them, my bravo to them for trying a new thing out of their zone of comfort. Best of luck!

Saturday, May 17, 2008

Enterprise Library 4.0 - Unity 1.1

No, it's not a sport's result: Enterprise Library 4.0 and Unity 1.1 just shipped!

Yes, I know, this is not terribly Alt.Net for someone that just bought a Mac, but what can I say, I just love EntLib. Ok, Enterprise Library has it's flaws, but it is so nicely packaged together that I often end up choosing it over other better tested, solid and scattered solutions. Not always a great idea, yet a fact.

And Unity brings great promises... let's wait and see.

Here they are:

Friday, May 16, 2008

Moonlight is out!

Moonlight, the Silverlight Linux port, is out! This is a great day for:

  • people who believe great software shouldn't be confined to proprietary system;
  • people who believe .NET is too great a platform to be confined to the Windows platform;
  • people who believe HTML and javascript have passed their design limits.

TIOBE Programming Community Index

According to TIOBE:

The TIOBE Programming Community Index gives an indication of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, MSN, Yahoo!, and YouTube are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Here are some interesting data:

  • Java: constantly loosing, but by far the widely referenced;
  • C, C++, Perl: still strong, but not for long...
  • (Visual) Basic, Python, PHP: strong and getting stronger;
  • C#: steadily up - although not as strong as I thought...

And look, Delphi is still on the top 10!

iMac day 3

I've been spending most of my time preparing a Silverlight presentation, so I can only talk about the beautiful display, VMWare fusion, Remote Desktop, and, did I mention, the brilliant display?

After the initial in love phase, I'm starting to get the first problems:

  • I couldn't get networking services from my XP guest to be served from the host; and yes, the firewall is disabled, I'll have to google about it;
  • VPN from within the guest OS is just too slow - guess I'm having some networking problems with VMWare fusion...
  • (Disclaimer: ok, I know, I've only bought my iMac a couple of days ago...) In my (humble) opinion, Finder is by far the weakest piece of software from Mac OS X - from those of the most visible ones... Even taking into consideration my inexperience on Mac. For me Finder is clumsy and outdated. So I've said it. Sorry.

Having said it, I still believe to have bought an incredible piece of hard/soft-ware! And I keep recommending: buy a Mac, install XP, Vista, Ubuntu and whatever you feel like on VMs. Play with them all. Fail. Analise. Try. Learn. Feel the differences - and the similarities. Get new concepts from them all, mix them wisely and you'll surely get better solutions for your problems - at least I guarantee you'll have fun trying. Hell, mix them crazy :) Because a techno-diverse world is a better world :P

Today's personal achievement:

  • Finally I'm not constantly lost on Spaces, Dock, Finder and running applications. Still pissed when Finder reuses de window folder I needed, and annoyed with the way we get to choose folders and files from within apps, but I'm getting the hang of it.
  • Finally understood when installations just install, and when I have to copy the bloody files to the Application folder;
  • Today I didn't have to fire up a terminal, sudo bash, route add, chown and chmod to get things done. A milestone!

PS: did I mention how good the display is?...

Thursday, May 15, 2008

Code Snippets

Here's a cool code snippets repository from dotnetslackers.com. These are very short and focused "how-to"s, fulfilling typical technical scenarios.

iMac day 2

I've been writing project proposals like there is no tomorrow, so I haven't got a lot of time to play around with my new toy. Here's a fast report:

Forget about the cool OS, forget about the innovative community, forget about the Unix breeding, forget about the great display monitor (ok, that we cannot forget)... Forget about all of those, what I like the most about my new iMac is... the way it runs Windows!

It is just incredible how they interact. VMWare Fusion is just awesome, my XP developing lab just flies! And what about Unity? Just incredible! Working seamlessly on Visual Studio 2008 and IE8, side by side with Safari and LightRoom is just unbelievably cool. Even the remote desktop experience is just great - I'm presently blogging from a remote desktop connection from home to the office, and my old Vista seems to have gained a new live with this great display. And what about photos? It seems like the same old photos have been retouched by a professional photographer.

I hope to get some time over this weekend to blog about my Mac experience. Until then, I only have the following cons:

  • cannot get two concurrent user sessions;
  • cannot write over my NFTS formatted external disk - arghh, the last Ububtu I've used did it!...

PS: now that I've reconfigured the Spaces swapping shortcut from CTRL-Arrow, I can even edit through a file without changing spaces :) Hurray!

Wednesday, May 14, 2008


Oops, I know, not new, but only found out now!

TASKKILL [/S system [/U username [/P [password]]]]
         { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]

    This tool is used to terminate tasks by process id (PID) or image name.

Parameter List:
    /S    system           Specifies the remote system to connect to.

    /U    [domain\]user    Specifies the user context under which the
                           command should execute.

    /P    [password]       Specifies the password for the given user
                           context. Prompts for input if omitted.

    /FI   filter           Applies a filter to select a set of tasks.
                           Allows "*" to be used. ex. imagename eq acme*

    /PID  processid        Specifies the PID of the process to be terminated.
                           Use TaskList to get the PID.

    /IM   imagename        Specifies the image name of the process
                           to be terminated. Wildcard '*' can be used
                           to specify all tasks or image names.

    /T                     Terminates the specified process and any
                           child processes which were started by it.

    /F                     Specifies to forcefully terminate the process(es).

    /?                     Displays this help message.

    Filter Name   Valid Operators           Valid Value(s)
    -----------   ---------------           -------------------------
    STATUS        eq, ne                    RUNNING |
                                            NOT RESPONDING | UNKNOWN
    IMAGENAME     eq, ne                    Image name
    PID           eq, ne, gt, lt, ge, le    PID value
    SESSION       eq, ne, gt, lt, ge, le    Session number.
    CPUTIME       eq, ne, gt, lt, ge, le    CPU time in the format
                                            of hh:mm:ss.
                                            hh - hours,
                                            mm - minutes, ss - seconds
    MEMUSAGE      eq, ne, gt, lt, ge, le    Memory usage in KB
    USERNAME      eq, ne                    User name in [domain\]user
    MODULES       eq, ne                    DLL name
    SERVICES      eq, ne                    Service name
    WINDOWTITLE   eq, ne                    Window title

    1) Wildcard '*' for /IM switch is accepted only when a filter is applied.
    2) Termination of remote processes will always be done forcefully (/F).
    3) "WINDOWTITLE" and "STATUS" filters are not considered when a remote
       machine is specified.

Here are some cool samples:

    TASKKILL /IM notepad.exe
    TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
    TASKKILL /F /IM cmd.exe /T
    TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
    TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM *
    TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"

Encyclopædia Britannica WebShare

Encyclopædia Britannica WebShare is a special program for web publishers, including bloggers, webmasters, and anyone who writes for the Internet. You get complimentary access to the Encyclopaedia Britannica online and, if you like, an easy way to give your readers background of the topics you write about with links to complete Britannica articles.

Good for you, Britannica, you've just found out that the very same Web 2.0 that created you worst nightmare, Wikipedia, is probably your greatest ally.

And it comes with cool Widgets too!

Tuesday, May 13, 2008

Finally bought a Mac

I've been trying to get a cheap Mac for years, but finally gave up and bought a new one. It's a simple 20' iMac, I've just bought an extra memory to get to 4GB.

Those of you who know me since the late 80's should be wondering if I have Alzheimer - yes, I used to develop on System 6 and 7 on Macintosh 128K, Plus, SE 30 and Quadra and hated everyone of these dreadful beasts. Those of you who know me from the mid 90's as a Microsoft evangelist (not to say fanatic) should be wondering if this is a sign for the end of the world. Those who know me from the last years know I'm just in love with Mac OS X.

Why Mac? Because:
  • it is different
  • it is challenging
  • it is beautiful
  • it brings a new UX
  • it has a user community that isn't afraid to dump the past and reach for new concepts
  • it is innovative
  • it has Unix roots (yes, I've worked on Unix for ages...)
  • it isn't too intrusive a gadget to put on a bedroom
  • it runs all I can run on a PC (including XP and Vista) plus Mac OS X
And no, I'm not planning on stop using Microsoft OSs. They are the best, but I want more. There's room for much more, believe me!

I'm now trying to get into this new concept (the last time I used a Mac was over 3 years ago for only a couple of months). The next step is to choose a virtualization product to get my good old XP developing machine up and running - can't wait to get Silverlight into Safari on Mac :)

After that my next step will be to to install Ubuntu on my old Celleron.

PS: isn't it strange, the first things I've installed was a Remote Desktop Client! Looking for new challenges is fun, but feeling firm on known ground is very cozy...

WorldWide Telescope Lauched!

WorldWide Telescope has been made available to the general public. From Channel10:

This virtual telescope is actually comprised of terabytes of imagery, collected and combined from the best ground and space-based telescopes in the world. Using Microsoft's Visual Experience Engine, you can use the telescope to pan and zoom through the night sky, moving in and around planets, stars, and even galaxies. Of course you can view the moon and the planets with WWT, but the imagery from this telescope also lets you do things you've never been able to before from your computer - like watching stars being born or galaxies collide. 

Monday, May 12, 2008

Visual Studio 2008 and .NET Framework 3.5 Service Pack 1 Beta

Here are Guthrie's notes (starting from the installation notes: install Vista SP1 and uninstall VS 2008 Tools for Silverlight 2 Beta1).

Here's Scott's list (in bold are my favorites):

  • Improvements for Web Development
  • ASP.NET Data Scaffolding Support (ASP.NET Dynamic Data)
  • ASP.NET Routing Engine (System.Web.Routing)
  • ASP.NET AJAX Back/Forward Button History Support
  • ASP.NET AJAX Script Combining SupportVisual Studio 2008 Performance Improvements HTML Designer and HTML Source Editor
  • Visual Studio 2008 JavaScript Script Formatting and Code Preferences
  • Better Visual Studio Javascript Intellisense for Multiple Javascript/AJAX Frameworks
  • Visual Studio Refactoring Support for WCF Services in ASP.NET Projects
  • Visual Studio Support for Classic ASP Intellisense and Debugging
  • Visual Web Developer Express Edition support for Class Library and Web Application Projects
  • Improvements for Client Development
  • Application Startup and Working Set Performance Improvements
  • New .NET Framework Client Profile Setup Package
  • New .NET Framework Setup Bootstrapper for Client Applications
  • ClickOnce Client Application Deployment Improvements
  • New Windows Forms Controls
  • WPF Performance Improvements
  • WPF Data Improvements
  • WPF Extensible Shader Effects
  • WPF Interoperability with Direct3D
  • VS 2008 for WPF Improvements
  • Data Development Improvements
    • SQL 2008 Support
    • ADO.NET Entity Framework and LINQ to Entities
  • ADO.NET Data Services (formerly code-named "Astoria")
  • WCF Development Improvements
  • VB and C# Improvements
  • Team Foundation Server Improvements

Uau, Scott's team is releasing CTPs and betas nearly as fast as Scott can blog about them. This is an incredible shipping speed. Keep up the good work :)

Sunday, May 11, 2008

Twitter and SMSs...

Yes, I know, Twitter is free, who knows how all that infra-structure is getting paid, but it is terribly annoying to setup your mobile, receiving a dozen of messages for a week or so, setting up you expectations, and stop receiving them. Yes, I haven't received a Twitter SMS for over a week. And no, I didn't get into the 250 weekly limit. My account is from TMN, Portugal. Anyone else with this problem?



It's working again! I had to send an SMS from my mobile to turn it on. Thanks for the tip, Pita.

Watching TV on you laptop

I have yet another excuse to spend time on my laptop: watching F1 grand prix. The only problem is... 600MB of traffic doesn't motivate me to try and find an High Definition channel for this...

PS: just loved Fisichella's comment: "I had a great start, just couldn't stop at the first corner so I overrun several cars. It wasn't me fault". Clearly not, Giancarlo, they clearly should have run away from you, it's not like they don't know your driving past... :)

F# for Numerics

Nothing in this world can be called a candidate for success if it is not sellable. To my knowledge, here's the first commercial F# library: F# for Numerics.

Seems like F# is following the right path :)

Saturday, May 10, 2008

New gal on the town

I love when my friends start blogging. Here's the newest gal on the blogosphere: Joomla Development Tips, from my dearest friend, Sónia Carreira.

This is a refreshing blog, as Joomla is not the CMS we at the Microsoft's ecosystem are used to work with. Joomla is a great CMS, clean, modular, and above all, free and not resource greedy!

Some years ago I tried out Mambo, Joomla's father, and was quite impressed with the ease of use, loads of themes and modules. Let's stay tuned to Sónia's blog!

Murphy's law - and why it pays off to be paranoid

If there is one thing that geeks and sailors know, is that if something can go wrong, it will. On a sailing boat the engine will only refuse to start when entering an harbor on a heavy storm. When demonstrating software, it will only fail live on the demo, no matter how many times you have prepared it.

Yesterday we had a demo that proved this law once again. It all started with a lot of USB pens being hooked into the desktop to get the presentations, some of them crashing explorer. Then we run out of space on the system drive and just didn't notice it. Then CPU went ballistic to 100% just doing nothing. Finally the machine started to slow down until it nearly stopped - we could see the GUI elements being drawn, it was very educational...

Luckily I had prepared another laptop where I kept the demo up and running - yes, some times being paranoid does pay off! I really never intended to use it, I've been mirroring resources for demos for years and this is the first time I've used an alternate laptop on a demo.

I have been examining the event log, looking for hard drive errors that I didn't found. What I did found was a series of unfortunate events, from the USB installations to the lack of space on system drive, but also:

The speed of processor 0 is being limited by system firmware. The processor has been in this reduced performance state for 16 seconds since the last report.

The speed of processor 1 is being limited by system firmware. The processor has been in this reduced performance state for 16 seconds since the last report.

Oops, the laptop was overheating and the BIOS throttled the CPU to avoid damage. Could this be the reason? As we are always demonstrating our products on these laptops, I've never risked a BIOS update, should I had done it this probably would never happened.

All is well when ends well. The project was a huge success, I'll be posting about it soon. congratulations to the core team:


Alexandra Marques, Luis Gonçalves and Mário Romano. For those who don't know me, I'm really about the same height as Alexandra, if not shorter :)

PS: by the way, the project's name is SADPOF, an operational decision system for the forest - oh yes, Simulated Annealing, multi-objective evaluation, parallel processing of huge chucks of data, lots of cool and geeky fun! More about it soon.

Project Euler

Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.

Now here is a great series of Project Euler's problems beautifully solved in F#. Highly readable and pedagogic.

Friday, May 09, 2008

Groove is not always groovy...

Watch out for Groove 2007 synchronization: I'm using it to work over a WSS3 team site, and had the following:

  • synced on a 2nd machine: bad idea, all my document library got duplicated! Even files and directories I wasn't working on; please note that it work just fine for a week or so;
  • after some "housekeeping" (moving around, renaming and deleting files), I've found out I couldn't sync tose changes back to WSS. Then, after a series of painful recovers, I managed to sync it up, just to find out... it was out of sync! Some folders just disappeared from WSS, but still appeared on Groove. More, I've uploaded these files again over Groove, but then couldn't get it to sync again (no files on the WSS to update...).

My advise: do you housekeeping over tiny baby steps and sync these baby steps right into WSS. At least for now.

Interpreted languages versus compiled ones

The world is definitely changing! Though theoretically possible that an interpreted language would ultimately surpass the performance of a complied language (since it is able to make optimizations at run-time based on the available hardware), I can't help but to feel... old!

Here's a link to InfoQ's link, refering Charles Nutter:

[on java 6 hotspot] you can do things like omitting synchronization guards until it becomes obvious they're needed. And you can change the set of optimizations applied after the fact...in essence, you can safely be "wrong" and learn from your mistakes at runtime. This is the key reason why Java now surpasses C and C++ in specific handcrafted benchmarks and why it should eventually be able to exceed C and C++ in almost all benchmarks.

Thank god for not doing native code anymore! Thank god for .NET and IL! Thank god I didn't write a blog when I've started coding (15 years ago), because then I clearly didn't believe to get to see this (theoretical) day :)

Thursday, May 08, 2008

Community Clips

Here's another cool site from Office Labs: Community Clips. You can make help videos quickly and easily with the Community Clips help video recorder. And upload the screencasts directly to Soapbox.

I've just tried it with a useless test, it's just awesome! We often record screencasts to demo our software, so this will be a great tool to keep close.

Wednesday, May 07, 2008

Frequently Asked Questions for System.Net.Mail

here's a great link addressing the System.Net.Mail (SNM) namespace found in the 2.0 .NET Framework. A must!

Tuesday, May 06, 2008

Monday, May 05, 2008

Framework Design Guidelines Digest

The distillation and a simplification of the most basic guidelines described in detail in a book titled Framework Design Guidelines by Krzysztof Cwalina and Brad Abrams.

Thanks for the tip, Cab_ux.

PS: by the way, is there a story behind Cab_ux?

Sunday, May 04, 2008

Managed Extensibility Framework

What the heck is MEF:

MEF is a set of features referred in the academic community and in the industry as a Naming and Activation Service (returns an object given a “name”), Dependency Injection (DI) framework, and a Structural Type System (duck typing). These technologies (and other like System.AddIn) together are intended to enable the world of what we call Open and Dynamic Applications, i.e. make it easier and cheaper to build extensible applications and extensions.

Cool, and it gets cooler:

The direct engagement with the DI community is also starting. We gave a talk on the technology at last week’s MVP Summit, and talked with Jeremy Miller (the owner of Structure Map) and Ayende Rahien (Rhino Mocks)

There's a trend of openness at Microsoft that you could never predict a few years ago. Good job!

Microsoft Withdraws Proposal to Acquire Yahoo

It's about time!

From Ballmer's letter to Yahoo:

Despite our best efforts, including raising our bid by roughly $5 billion, Yahoo! has not moved toward accepting our offer. After careful consideration, we believe the economics demanded by Yahoo! do not make sense for us, and it is in the best interests of Microsoft stockholders, employees and other stakeholders to withdraw our proposal.

But look, Ballmer is trying to tell us it wasn't all about money:

We regard with particular concern your apparent planning to respond to a “hostile” bid by pursuing a new arrangement that would involve or lead to the outsourcing to Google of key paid Internet search terms offered by Yahoo! today. [...] Accordingly, your apparent plan to pursue such an arrangement in the event of a proxy contest or exchange offer leads me to the firm decision not to pursue such a path.

Eh, eh, eh, blame it on Google... Great way to get out clean (as it can be...).

Saturday, May 03, 2008

Expression Studio 2 shipped

Still no Silverlight 2 support - for that we still have to use Blend 2.5 preview. As expected.

Where the heck are Entity Framework samples?

Ok, Entity Framework is still to be released, but where the heck are EF samples? Take Following Real-World ASP.NET MVC Projects: Linq to SQL. Take Dynamic Data Controls: easily bindable with Linq To SQL, couldn't hook them up with EF. Most bloggers samples: Linq To SQL. Take Microsoft demoware apps: Linq To SQL. Can anyone point me to some nice EF samples other then Astoria?

The end of techno-totalitarianism

According to TechCrunch, Twitter has plans to abandon Ruby on Rails after two years of scalability issues. Slashdot makes reference to a revealing denial from Evan Williams:

FWIW: Twitter currently has no plans to abandon RoR. Lots of our code is not in RoR, already, though. Maybe that's why people are confused.

What Twitter is discovering is a dimension of what Brooks argued a long time ago: There's no Silver Bullet. And today's growing complexity seems to be handled by Twitter just as Brooks suggested: growing organically through incremental development. Nowadays adding a trend that was a tabu for many (starting with me!): a solid codebase doesn't have to be homogeneous, that is just a techno-totalitarianism.

We must learn to architect over heterogeneous OSs, frameworks, languages and applications. I'm not saying there isn't a price to pay for it, just saying that other than the price tag it comes with great opportunities, we just have to figure out where to draw the line.

What should exams be all about

Yesterday I had my VHF maritime license exam revalidation - in Portugal we do it every 5 years. The exam itself is actually quite simple, but crucial for safety at sea.

But what I found great was the model of the exam itself. It is composed of the following:

  1. A multiple choice written exam
  2. A practical examination

Nothing new here. But here's how it goes: we do the written exam, which is immediately corrected by the examiner. Those who succeed go into the practical examination. And here, we are asked, in order, for:

  • the critical safety questions we failed
  • equipment operation rules
  • equipment operation handling
  • emergency procedures
  • normal everyday's procedures
  • lots of scenarios

The examiner is not only validating your knowledge, he ends up giving an extra 1H lesson! And it is then clear that the exam questions are aligned with the needs. Great way to learn!

Thursday, May 01, 2008

Windows XP SP3 is out!

Windows XP SP3 is out to the public. It is probably released under WindowsUpdate, but you can download it from here.

I have mixed emotions about it. Maintaining an OS for so long can be seen as a signal of some innovation incapability from the Microsoft community of users... Then again, it can also mean that XP is a nice little OS, and we don't need more for some time. Or probably that too much of our computing depends on XP. Can it be possible that the real problem would be that Vista capabilities grew faster then the hardware?... Arghh, I give up, lets start waiting for the next XP SPs....

Hyper-V RC0

I've just picked an optional update from Windows Update: Hyper-V RC0. Let the count down begin!


Oops, it was already there! I only picked up an update... :S


support.microsoft.com is down again... My advice to Microsoft: rename the service to lack-of-support.microsoft.com, just to avoid law suites.

Now, seriously, I wouldn't want to be the poor guy down in Redmond trying to recover this important site that rushed to the datacenter, read the event viewer, fired up Google, erhhh... Windows Live Search and discovered that the answer to his problem rested in... support.microsoft.com :)


Yesterday I've attended to a great session by Pedro Rosa on VirtualEarth. Pedro showed us how simple is to integrate with VirtualEarth. Until Pedro publishes his samples, here one from the SDK:

<script type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1">

<script type="text/javascript">

var map = null;

function GetMap()
map = new VEMap('myMap');


<body onload="GetMap();">
<div id='myMap' style="position:relative; width:400px; height:400px;"></div>

Couldn't be simpler.

Pedro was polite enough not to mention Google - and this was cool, as VirtualEarth is kicking ass on GoogleMaps.

From his presentation, here is what I found relevant:

Pedro will upload his presentation and samples back on his blog at deepdivein.net, so be sure to stay tuned.


Here it is, as promised (in Portuguese): Virtual Earth - O que podemos fazer com esta nova plataforma?

Geotagging your photos

Now that cameras are starting to geotag our photos, we have to write software that deals with this data. Microsoft is about to launch Pro Photo Tools, a free geotag-aware new utility geared for photography professionals and enthusiasts.

Microsoft is continuing to bet on consumers to boost Windows sales, and above all finally understood the sad truth: XP will still be here for a while, so Windows Imaging Component, the image-handling engine built for Vista, will be also available in Windows XP SP3.

From a product management point having to port this sub-systems to an older OS, from a different codebase, is just too silly to be true. But the fact remains that Vista is not getting enough traction, so Microsoft doesn't have another option.

Weisberg views Pro Photo Tools as a strong statement about what Microsoft can accomplish by building off its existing Windows infrastructure:

One hundred days ago, I wrote a memo launching the project. One hundred days later, we have a product. That's not typical Microsoft.

Theses are great news. And part of the infrastructure responsible for this success is VirtualEarth, my next post.

Graphics memory requirements for our developing workstations

When choosing a graphics card for a developing workstation, I often forget how demanding Aero is. The way we used to calculate memory requirements, based on multiplying resolution and color depth, just doesn't work with Aero. Here are the requirements:

  • Single Monitor and Mobile Systems
    • 128 MB up to and including 1920x1200
    • 256 MB over 1920x1200
    • 64 MB up to but not including 1280x1024
  • Desktop dual monitors
    • 256 MB for larger dual monitor configurations
    • 128 MB up to but not including 1280x1024x2

Oops, way higher then I expected... Here are Dell recommendations for Levels of Aero Support on Desktops with Two Monitors:

These specifications indicate minimum configurations to support Windows Vista Aero based on current Dell testing*.

High resolution, dual monitor or many open application windows may require additional memory for optimal Aero experience.




256MB Discrete

AERO for all dual monitor resolutions

128MB Discrete

AERO for Dual 1024x768 with 0MB shared

All dual monitor resolutions with 128MB shared

64MB Discrete

AERO for dual 1024x768 with 64MB shared

All dual monitor resolutions with 192MB shared

Basic for any dual monitor resolution with 0MB shared

Integrated Graphics

AERO up to

Dual 1024x768 with 128MB shared

All dual monitor resolutions with 256MB shared

Basic for Any dual monitor resolution with 64MB shared


Dell recommends systems to be configured with at least 1GB dual-channel memory and a premium graphics card. To further optimize the Aero user experience, Dell recommends 2GB dual channel memory.




Bottom line is: on a developer's rig, 256MB is a must for dual monitor with high resolutions. I'll try to hook some 128 and 256 MB graphics laptops on a couple of LCDs to check the limits, and post the result back here.


On my first test with NVidia Quadro 135M I setup 1280x800 and 1280x1024 on a 17' LCD. Please note that as 135M has TurboCache, I may be incurring on some performance costs...

Development Catharsis :: Copyright 2006 Mário Romano