Published by Phillip Calçado August 17th, 2010
in abstractions, books, c#, components, domain driven design, domain specific languages, java, language adaptation, language oriented programming, layers, object orientation, ruby, software architecture and software design.
Most complex tasks are solved using abstractions. To create an abstraction one groups lower-level concepts, what I will call primitives in this text, and make them interact in a pre-defined way.
Abstractions are present at all levels in a system. Computers work based on electric signals. To reduce the Essential Complexity we abstract those signals with […]
Last week, Cauê and I were refactoring some classes in our systems and faced an interesting situation.
In our application we have a notifications system. It is quite simple; notifications are read from a text file and shown in a small information box in the home page. The MVC controller –it’s a Java application and we […]
Weeks ago, some people in the Ubuntu community got a bit disappointed with the distribution’s core team:
> We are supposed to be a community, we all use Ubuntu and contribute
> to it, and we deserve some respect regarding these kind of decisions.
> We all make Ubuntu together, or is it a big lie?
We all make […]
Published by Phillip Calçado November 24th, 2009
in agile, business, c#, components, domain driven design, domain specific languages, economics, events, java, layers, management, object orientation, software architecture, software design, thoughtworks and trends.
As I said here before I was in Brazil some weeks ago to present at a conference. I had a really great time over there with some amazing people and would like to thank Caelum for their hard work in creating such a great conference. I’m making the slide deck and notes available in my […]
Published by Phillip Calçado April 8th, 2009
in business, case study, clojure, cloud computing, components, groovy, java, lisp, soa, software architecture, software design, thoughtworks, trends and web.
Some weeks ago I joined a handful of ThoughtWorkers invited to test the new Google AppEngine’s Java API. Unfortunately I had a project requiring a lot of attention during most of this period but once back on the beach I found some time to play around with it.
Cloudy Skies
Google AppEngine (GAE) is Google’s shot in […]
For some months now I’ve being playing around the idea of writing a testing framework for Clojure. It started as just a more extensible fork of the fact library but now I’m trying to explore some funny ideas in the testing semantics.
Although this project is progressing too slowly it already spawned some other pet […]
More and more people are deploying Services, APIs and all kinds of distributed components. Major content providers are finally finding out that exposing their features to developers not only keep them relevant but also creates a nice ecosystem around their business.
When someone decides to expose a piece of software to others –being internal users in […]
In a recent development project the team has decided to create two versions of the same generated artifact -a JAR file containing a message-processing framework that other systems will use. The full JAR would depend on weblogic.jar, a 50+MB gorilla, but as the features that create this dependency are not used by all our […]