Monthly Archives: July 2011

Software architecture

Architecture is an uncertain term. The broadest meaning of architecture I’ve heard is “everything that is important”.

Martin Fowler in “Patterns of Enterprise Application Architecture” writes:

“The software industry delights in taking words and stretching them into a myriad of subtly contradictory meanings. One of the biggest sufferers is “architecture.” I tend to look at “architecture” as one of those impressive-sounding words, used primarily to indicate that we’re talking something that’s important. But I’m pragmatic enough not to let my cynicism get in the way of attracting people to my book. :-)

“Architecture” is a term that lots of people try to define, with little agreement. There are two common elements: One is the highest-level breakdown of a system into its parts; the other, decisions that are hard to change. It’s also increasingly realized that there isn’t just one way to state a system’s architecture; rather, there are multiple architectures in a system, and the view of what is architecturally significant is one that can change over a system’s lifetime.”

There are also more accurate definitions in international standards.

ANSI/IEEE Std 1471-2000, Recommended Practice for Architectural Description of Software-Intensive Systems:

Architecture is defined by the recommended practice as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.

ISO/IEC 42010 (international standard for architecture descriptions of software-intensive systems):

“Architecture (of a system): fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution.

SharePoint and Rich Text Editors

SharePoint 2007 allows rich text editing only in IE. For non-IE browsers SharePoint shows only plain text editor. And we will fix this.

There are some tutorials that describe how to add one of popular rich text editors into SharePoint websites: FCKEditor, TinyMCE and others.

Firstly, I tried to follow this one but  it doesn’t work for me. They recommend to add some piece of javascript to file NON_IE.js in Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\ folder. But when I open SharePoint page in FireFox 3.6 it doesn’t ever load NON_IE.js.

So, I decided to use FCKEditor for all browsers. The javascript code is almost the same, but you should add it into CORE.js instead of NON_IE.js. See details in this article.

It’s a free solution. If you want to pay, you could get almost the same result for $599 if you buy “CKEditor for SharePoint” from authors of FCKEditor  :)

Modeling of customer, order and address entities

NopCommerce is a popular open-source shopping-cart based on ASP.NET.

To buy something the customer of online store should provide shipping and billing addresses. NopCommerce stores this information in a bit strange way. The figure below shows the simplified scheme of entities which are used to represent information about customers, orders and addresses.


Continue reading


Ratings are one of the most popular kind of user-generated content. You can see it almost everywhere: in blogs, in social networks, in e-commerce websites.

Usually user sets score on some scale, e.g. from 1 to 10 or from 1 to 5.

Sometimes the user is offered only two options: thumbs up and thumbs down. There are actually three options, because he can avoid a vote.

And there can be only one option, for example ‘Like’ button in the Facebook.

Which scale is the best? It is a trade-off between precision and complication. To press ‘Like’ is easier for the user than to select an appropriate score on the 10-point scale, but ‘Like’ button is less informative.

The statistics can help us to make decision. YouTube has analyzed ratings of videos. Their users rated content on the 5-point scale. And as it turned out most ratings were 1 and 5. And 5 is a few times popular than 1.


Continue reading