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

Friday, December 07, 2007

Architecting for other than SOA and Ux

Don't get me wrong, SOA and User Experience are very dear subjects to me. But we have other architecting needs, and one of them are the frameworks internal to our systems.

We have to decide how much of this framework is built in house, how much from outside components/frameworks, and finally how much we just give up using.

We have to decide if we use standard ADO.NET, CSLA.NET compliant components, simple Datatables, iBatis, dOOdads, EntitySpaces, NetTiers, NHibernate, LINQ To SQL, LINQ To Entities, SubSonic or the next to be persistance framework, remembering that on the past we have choose OlyMars, Gentle.NET or WilsonORMapper.

We have to choose a DI framework. We have to decide between Enterprise Library, Spring.Net or CastleProject. We have to choose between MVC, MVP or WebForms. We have to choose between using our our in house code generator, CodeSmith, myGeneration or T4 GAT/GAX.

We have to choose what our model is on MDD. We have to choose when to use SProcs and when not to.

We have to choose between SQLServer, Oracle and other databases.

We have to choose a workflow system and a middleware.

We have to choose a unit testing framework, a mockable framework, a source control and continuous integration system.

Yeap, we have a lot to architect. Why does SOA and Ux gets most of the attention?

Office 2.0

Here's a great list of Office 2.0 applications.

Hear about it at Scobleizer.

Learning the Model View Presenter Pattern

Now that ASP.NET MVC is about to CTP, please don't forget the MVP. Uau, I've managed to write a phrase full of acronyms!

Bil Simser has just posted:

The guys over at Patterns and Practices got it right. They've put together a package (available via a CodePlex project here) on learning and understanding the Model View Presenter Pattern (MVP). It's kind of a "mini-guidance" package and not the big behemoth you normally see from these guys that:

  • Provides guidance on how MVP to promotes testability and separation of concerns within the UI
  • Illustrates how to implement MVP with standard ASP.NET
  • Illustrates how to implement MVP with ASP.NET and the Composite Web Application Block

The package contains full documentation on the pattern, unit tests, and source code (for both WinForms and CAB) demonstrating it. Very nice and very easy to digest! Check it out here if you're just getting started and want to see what MVP is about.

Great F# arguments!

Came across this great post from Harry Pierson about F#. He gives us a series of arguments that explain in a very simple way what we can get out of F#. Brief and efficient. A must. Here's one most developers can relate to:

In F#, I wrote a function called CacheAndTrace that takes a parsing function as a parameter and returns a new function that adds the caching and tracing code. Since the new function has the same signature as the original parsing function, the caller can't tell the difference but it saves me having to write the boilerplate code over and over again.

Thursday, December 06, 2007

Configuring a VMWare Server

For development servers we use a series of Dell PowerEdge 2950 to hold virtual machines. We pack each of this babies with 2 Quad Core CPUs, 16 GB of memory, a PERC 5i controller and a 6 disks bay.

Each time we setup such a systems there's always a great fuss about what disks to buy and how to configure them. Here are some sources to help us figuring out the solutions:

Sorry, no conclusion yet. The only info I can give you right away is that we have a bunch of different disk configurations with as many different throughputs.

Apart from the question raised on these articles, we have the following:
  1. The benchmarks targets:
    1. File Server;
    2. Web Server;
    3. Database Server;
    4. Workstation;
    5. What about virtual machines servers? What benchmark should we use? Should it depend on the guests, should we use one of these (for example, database) or should virtual machines be benchmarked on future tests?
  2. What should be the cluster size of the host where the virtual machines are? Does it really matter?

Randy Patterson's 10 Development Podcasts

Here's 10 Podcasts Every Developer Should Listen To by Randy Patterson:

smRSSImage Polymorphic Podcast Craig Shoemaker brings insight into software development in the .NET platform along with interviews with industry luminaries. Good content, good quality but an inconsistent schedule.
smRSSImage ARCast with Ron Jacobs Ron Jacobs is a Microsoft employee and delivers a weekly podcast on Channel 9 that dives into some tough .NET architecture topics.
smRSSImage Software Engineering Radio Not specifically .NET related but contains a wide spectrum of Software topics from Dynamic Languages to Transactional Memory to Fault Tolerance.
smRSSImage Software Quality Engineering Conferences Podcast Interviews with speakers from the Agile Development Practices 2007 Conference
smRSSImage OnSoftware Weekly interviews with some of the software industry's leading developers about a wide range of programming and development issues
smRSSImage WebDevRadio Podcast Web Development Discussion
smRSSImage Agile Toolkit Podcast Topics covering all things Agile.
smRSSImage .NET Rocks! .NET Rocks! is a weekly talk show for anyone interested in programming on the Microsoft .NET platform. The shows range from introductory information to hardcore geekiness
smRSSImage Hanselminutes Scott Hanselman discusses utilities and tools, gives practical how-to advice, and discusses ASP.NET or Windows issues and workarounds.
smRSSImage ASP.NET PodCast The ASP.NET Podcast brings a technology focus to the area of podcasts. This podcast is geared towards developers with applications that scale to a large amount of data and users.

I ear most of this while commuting, and will definitely try the remaining ones. Thanks for the link, André Lourenço :)

eBoostr brings ReadyBoost like technology to Windows XP

Tiago has just posted about this implementation of ReadyBoost on XP:

eBoostr allows you to use an additional drive (flash memory or hard disk) as another layer of performance-boosting cache for your Windows XP. There is no need to purchase a Vista upgrade to get the benefits of the Vista’s ReadyBoost technology. With the newly developed eBoostr, the booting of your OS and applications startup get much faster thanks to the smart caching mechanism.
Here's the link. Please note that this is a commercial product.

Volta: the promised land?

Here's a project I haven't heard about for long: Volta. Not a promise anymore, it reached CTP.

Here's a nice post about it:

Programmers write web applications using familiar .NET languages, libraries, and tools. Volta splits the application into multiple parts potentially running on different tiers, say, client and server. Client code needs only a minimal, JavaScript-enabled browser, though Volta will take advantage of additional runtimes that may be present.

Programmers simply refactor classes that need to run on tiers other than the client and Volta injects the boilerplate code for communication, serialization, synchronization -- all the remoting code. The developer enjoys all of the benefits of .NET: a great debugger, test tools, profiling, intellisense, refactorings, etc.

[update]

Erik Meijer: Volta - Wrapping the Cloud with .NET - Part 1

Erik Meijer: Volta - Wrapping the Cloud with .NET - Part 2

Wednesday, December 05, 2007

Re-enabling Hibernate on Vista

Let me start explaining how I found out this: 'Mister M' was afraid to hibernate his Ubuntu with a running VMWare guest mounted on an external USB drive. So I tried to do the same on my Windows Vista, explaining how confident I was on Vista reliability, only to find out my Hibernate option had vanished! More, I couldn't find the a way to re-enabling it on Power Options.

After some googling I found out:

If you've found that your Hibernate option is missing from Windows Vista, it might be from running the disk cleanup wizard and removing the hibernate files.
This is due to a known bug in Vista that might not have been hotfixed already.

It goes on:

Turning it back on is very simple, however. Type cmd into the start menu search box, and use Ctrl+Shift+Enter to open in administrator mode. You can also right-click the item in the menu and choose Run as Administrator.

Uau! Simple, ehm?...

From the command prompt, type in the following command:

c:\> powercfg /hibernate on

And if this wasn't good enough for 'Mister M', it ended up:

You'll have to restart your computer before it will take effect.

Oh, well, I deserved it. 'Mister M' had his revenge :)

As geek as I can get

Ok, I admit it, I'm a geek. Only a technologically disturbed geek would photoshop his picture as a form of art, faking playing an instrument he knows nothing about. Not only a geek, worse then that, a megalomaniac one! Wake up! Development is not an art! It was supposed to be an industry!

Having a bunch of computers at work didn't stop me. Using all USB ports was not enough. Neither having a datacenter at home, nor posting like hell on this pathetic little blog. I had to portrait myself playing the violin on a laptop! Worst of all, I even posted the darn picture! Arghhh!

Oh, well, this exercise of futile self-worship has got to stop :) Until then, this will probably be the next devcatharsis logo. Next logo? Like devcatharsis has ever had a logo...

Hey, and if you feel a sudden rush to help this poor blind violinist please don't hesitate to use my AdSense links :) Or in he words of a great advertisement genius I met begging on the streets of San Francisco: "Why lie, it's for beer. Help the beerless." In my case: "Why lie, it's for gadgets. Help the gadgetless."

PS: I haven't seen me in pictures for ages - boy am I fat!...

[Update]
Here's my next logo:

[update II]
On 2007.12.23, here's my next attempt:

Backing up VMs

Nearly all of our development server environments are virtualized. One of the things VM technology provides us is the ease of maintenance. We use free VMWare server products, so we have to call for ourselves the maintenance responsibility. And for backup, we are using a script we found on the net that pauses the VM, copies the image and finally resumes it.

A colleague of mine, Sérgio Caliça, just proposed a smarter solution: why not use Shadow Copy?

Shadow copy as the following pros:

  • works on opened files;
  • is checkpointed (at least, I hope it is);
  • doesn't have downtime;
  • is fast;
  • it's the simplest of the disaster recovery methods;
As cons:
  • when the VM is recovered, it will probably act like someone as pulled the plug - so what?
  • we haven't test it yet;

I'll give it a try one of this days and let you tell how it run. Thanks for the tip, Sérgio.

SQL Server Reporting 2008 Reporting Services does not depend anymore on IIS

SQL Server Reporting 2008 Reporting Services does not depend anymore on IIS. Here's why:

  1. The first reason we moved away from IIS is for better configuration;
  2. The second reason for the change is a need for better resource management;
  3. A final motivation for the change was to remove adoption blockers;

Development Catharsis :: Copyright 2006 Mário Romano