rubikzube

software engineer ¤ yogi ¤ turban cowboy

Saturday, June 20, 2009

Loving the Clouds

The grayness of the day has kept me indoors, researching cloud computing providers for my side projects. Operations engineering has never been one of my strong suits, or one of my weak suits, or for that matter anything that I would want to put on my body ever, so deploying web applications on the cloud is a clear plus for me.

After judging the lay of the land, I settled on Aptana Cloud (the one with the Joyent Accelerator under the hood) as my provider. I found Amazon's EC2 unappealing as I would have to configure my image from scratch, and Google's AppEngine would force me to build my applications on top of an incredibly proprietary stack.

Aptana's solution is both easier to configure than the Amazon solution and based on an open source stack, unlike Google's solution. All I have to do is push the application from the Eclipse based IDE that I already develop in for personal projects and everything "just" works.

I even get source control and staging sites. Between this and Basecamp I don't think there's anything that can stop a web entrepreneur with a great idea .

Sunday, June 14, 2009

Give me chains, or give me death!

On my current project the component developers are moving towards constructor-based dependency injection. But here's the thing. I think that constructor-based injection looks ugly. There. I said it. I understand why it's there but it's ugly and verbose and I think that we might be using it as a workaround for more serious problems within our software architecture instead of using it for its intended purpose.

How many objects do you inject into a business object's constructor before that creates a code smell of its own? And what are the types of things that should be injected into a business object? I'm not entirely comfortable injecting business objects that our teams wrote into other business objects that our team wrote when we wrote both and we're not crossing an architectural layer. I may be wrong, but it just feels awkward.

It seems like maybe in our quest to create independent assemblies we forgot that it is possible to create logical dependency chains between assemblies and now we may be using constructor based dependency injection to work around our egregious independence.