As with most things in life, there is no single right or wrong way to approach a problem. There are usually many different ways to tackle the same problem. So, when attempting to design an OO solution, don’t get hung up in trying to do a perfect design the first time. What you really need to do is brainstorm and let your thought process go wild. Do not try to conform to any standards or conventions when trying to solve a problem, because the whole idea is to be creative. Thus, before you start to design a system, or even a class, think the problem through and have some fun! In this article, we explore the fine art and science of OO thinking.
The move from the procedural world to an OO world is not trivial. Changing from FORTRAN to COBOL, or even to C, requires that you learn a new language; however, making the move from COBOL to C++, C# .NET, Visual Basic .NET, or Java requires that you learn a new thought process. This is where the overused phrase OO paradigm rears its ugly head. When moving to an OO language, you must go through the investment of learning OO concepts and the corresponding thought process first. If this paradigm shift does not take place, one of two things will happen: Either the project will not truly be OO in nature (for example, it will use C++ without using OO constructs), or the project will be a complete object-disoriented mess.
Three important things you can do to develop a good sense of the OO thought process:
- Know the difference between the interface and implementation
- Think more abstractly
- Give the user the minimal interface possible
July 23rd, 2008
I’ve found a very interesting article describing a new approach in the project management. The Author (Bas de Baar) tries to implement the modern theory of Panarchy to the software development cycle.
Wikipedia says the following:
Panarchy, a term devised to describe evolving hierarchical systems with multiple interrelated elements, offers an important new framework for understanding and resolving this dilemma. Panarchy is the structure in which systems, including those of nature (e.g., forests) and of humans (e.g., capitalism), as well as combined human-natural systems (e.g., institutions that govern natural resource use such as the Forest Service), are interlinked in continual adaptive cycles of growth, accumulation, restructuring, and renewal.
So applying this idea to the software development we receive this:
Within Panarchy a system is going through four stages: growth (r), conservation (K), release (O) and reorganization (a).
(I have taken the descriptions of the stages from “Assessing and managing resilience in social-ecological systems: Volume 2 supplementary notes to the practitioners workbook“, which can be freely downloaded from the Resilience Alliance - bottom of the page).

- During the growth phase the system finds an abundance of resources available. Expansion and exploration of new opportunities are key concepts within this stage. “When new ecological spaces open up - due, for instance, to forest fires, or retreating glaciers, or many other things- resources needed for other species to grow are made available. There’s more light reaching the soil surface when large trees are toppled, or burned to the ground, for example.”
- “The r phase is transitory, and as the system matures, it is replaced by the K phase. Eventually slower growing, long lived species or entities enter the system. Resources become less widely available as they become “locked up”… The K phase is sometimes called the conservation phase, because energy acquired goes into maintaining or conserving existing structure, rather than building new structure. In this phase, a few dominant species or companies or countries … have acquired many of the resources and are controlling the way they can be used.”
- “Often systems rapidly pass into a phase called omega. This is also referred to as the release (or creative destruction) phase because structure, relationships, capital or complexity accumulated during the r and K phases is released (often in a dramatic or abrupt fashion). … Plants may die … or a company may go bankrupt, releasing workers and decommissioning factories or offices.”
- “The fourth, or alpha phase, is a period of reorganization, in which some of the entities previously released begin to re-structure but not necessarily as they were before. This phase can mark the beginning of another trip through an adaptive cycle … Many new entities may enter the system, and innovation becomes more probable.”
The adaptive cycle describes a system that has periods of stability and period of heavy change.
By the way I have almost no idea how this theory can be used in real software development projects…
July 22nd, 2008
Agile became a kind of a brand and I meet software development companies that state that they according to Agile principles but have no idea what they are speaking about.
So I decided to return to Agile manifesto and find that principles. Here they are. Hope this was useful:
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
July 21st, 2008
Portals are usually more complicated that sites. Even the sites of big companies and corporations. So, here are some factors that can lead to collapse of even good portal project:
- Leaving Maintenance Planning for Post Production
- Designing from Back to Front
- One Stop Shopping

- Too Much Too Soon
- Complexity for the Sake of Consistency
- Misallocated Outsourcing
- Random or Pure Agile Approaches
- Looking Inward for Direction
- Politics
- Combining SOA and Portal Initiatives
July 18th, 2008
Programming and Sex are very alike. Here are some statements that can prove this:
- One mistake and you have to support it for the rest of your life.
- Everyone acts like they’re the first person to come up with a new technique.
- Sometimes it’s fun to use expensive toys.
- You can do it for money or for fun.
- Once you get started, you’ll only stop because you’re exhausted.
- One little thing going wrong can ruin everything.
- It’s a great way to spend a lunch break.
- Beginners do a lot of clumsy fumbling about.
- You’ll miss it if it’s been a while.
- There’s always someone willing to write about the only right way to do things.
- It doesn’t go so well when you’re drunk, but you’re more likely to do it.
July 16th, 2008
Computers used in business applications have changed. In the beginning of IT- era they were room-sized centralized mainframes, now they turns into small client-server systems based on a microprocessor. The characteristics of these systems also have changed: from bites to terabytes. Today it’s hard to believe that some decades ago the computer marketing brochures listed below were astonishing and innovative.
1. SDS 900 Series: A new generation of low cost general purpose digital computers (1962 year)

2. 16K Ram Card that turns your computer into a working giant!
By the way prices were giant too: from $495 to $795 for different models.

3. Cool Executerm I. You could buy this remote data terminal for the time sharing computer between 1970 and 1979.

4. Super 16 Bit Microcomputer.
Two bytes are better then one. Really

5. Email. The beginning of the great way.

July 8th, 2008
Some basic advice about how to optimize for search:
Make sure your keywords appear on your site, and do what you can to encourage others to link
Regulars to Internet developers probably know the basics well. But with many people engaging in small businesses, with little time to research outside the needs of their operations, the need to know about SEO could fall outside the daily to-do list.
A good advice is to make sure the main keywords make it into the title and description tags; modern web development software helps one fill in those blanks. The keyword meta tag, a one-time staple of being indexed, receives little weight in the engines these days.
Don’t get carried away with the keywords; two or three mentions on a page will be enough. Too much may flag a page negatively for keyword stuffing, putting one’s site rank at risk.
July 2nd, 2008
At JavaOne in May, 2006, Sun Microsystems announced they were going to release Java as free software under the terms of the GPL. The size of the task (6.5 million lines of code) was only eclipsed by the size of the opportunity for Java as a free and open technology.
At JavaOne in May 2007, Sun announced that the work was largely completed and so OpenJDK was launched. What was less newsworthy was the fact that on release - OpenJDK still relied on code that was encumbered - between 4 and 5 percent of the code was closed, non free source that Sun didn’t own.
Richard Stallman described the encumbered code as :
“The one last obstacle [which] remains in liberating JDK and disarming the Java Trap completely”
and rallied the FOSS and Java communities to
“… work together to replace that code with free software”
So, who would step up to the challenge of making Java truly free and open ?
In June, 2007 - Red Hat launched the IcedTea project with the goal of making OpenJDK usable without requiring any other software that is not free. That in turn would allow OpenJDK to be included in Fedora and other Linux distributions without restrictions. The IcedTea Project made use of previous work developed under the GNU Classpath Project which had been independently driving towards a free and open implementation of the Java class libraries.
This week the IcedTea Project reached an important milestone - The latest OpenJDK binary included in Fedora 9 (x86 and x86_64) passes the rigorous Java Test Compatibility Kit (TCK). This means that it provides all the required Java APIs and behaves like any other Java SE 6 implementation - in keeping with the portability goal of the Java platform. As of writing, Fedora 9 is the only operating system to include a free and open Java SE 6 implementation that has passed the Java TCK. All of the code that makes this possible has been made available to the IcedTea project so everyone can benefit from the work.
The Java TCK is a complex suite of tools and documentation that verifies that Java implementations conform to the Java specification. It consists of more than 80,000 tests and over 1 million lines of code.
From here the initial plans are to make OpenJDK part of Red Hat Enterprise Linux distributions starting with Red Hat Enterprise Linux 5.3 and to expand the platform support. Beyond that our plans are still evolving, but clearly this creates some great opportunities for both Red Hat and Java. For example :
* Improving Java for virtualized, hosted environments - an area where Red Hat Linux has excelled but Java has struggled.
* Optimizing the performance and scalability of the full stack of Java-based JBoss Enterprise Middleware for Red Hat Enterprise Linux and Linux in general
* Being able to better manage the lifecycle of JBoss Enterprise Middleware platforms and the Java Virtual machine on which it depends
* A more fundamental opportunity is for Red Hat to be able to increase the depth of support for the JBoss Enterprise Middleware platforms running on Red Hat Enterprise Linux.
Over the coming months, we’ll continue working with our communities of users, customers and partners to better understand the opportunities that OpenJDK and IcedTea present to us.
Working with Sun Microsystems and the broader Open Source Java community; Red Hat’s OpenJDK team included Tom Fitzsimmons, Lillian Angel, Gary Benson, Keith Seitz, Mark Wielaard and Andrew Haley.
Tom Fitzsimmons will be at the Red Hat Summit in Boston between June 18th and 20th, so if you want to chat about the project - swing by the Exhibit Hall, grab a beer, and ask him how much fun the Java TCK testing was.
June 21st, 2008
Twentieth Century Fox Television and British commercial broadcaster ITV have inked an international programming partnership that includes the creation of local versions of select titles in each other’s libraries.

A British version of Dharma and Greg is already in the works at ITV Productions, and other formats from both companies are being looked at for reversioning in the U.K. or the U.S. The pair may also tap into each other’s production facilities.
The deal also includes a co-financed joint development fund for original programming that can be produced collaboratively or separately for international exploitation. The Shared Development Group will be headed up by Ann Johnson and Steve Sicherman from Twentieth Century Fox and Kate Bartlett and Saurabh Kakkar from ITV Productions.
Source:worldscreen.com
June 20th, 2008
A study by OTX (http://otxresearch.com/) finds that on average teens (aged 13-17) spend 11.5 hours online a week. It’s not a mistake!. Nor per day but only per week! Nearly a quarter of teens spend over 15 hours online per week, while 45% spent eight hours or less online.

The study also looked at what teens did online. 58% have made a purchase online.
On average teens who make purchases online are spending $46 per month, and 26% of teens are spending $50 or more. Clothes and music are the two most popular online purchases, followed by books, electronics and DVDs. . . .
Teens with their primary computer in their bedrooms are more likely to be heavy internet users (15+ hours per week) and spend money online.
The most interesting part of the study was the series of “Would you rather” questions. According to OTX, more teenagers would rather:
- Have a lot of “real friends” (91%) versus a lot of “online friends”
- Date someone they know from school (87%) someone they met on the Internet
- Shop in a store (82%) versus online
- Watch a full length program on TV (81%) versus online
- Give up television (74%) versus the Internet for a week
- Get information from the Internet (71%) versus traditional media like TV, magazines, or newspapers
- Give up cell phone texting (71%) versus Internet access (apparently not cell phone Internet access, though this isn’t totally clear)
- Get their locker vandalized (63%) versus their personal homepage or profile
- Be limited to a TV antenna for watching TV (63%) versus a dial-up Internet connection
- IM their friend (54%) versus Calling them
The study also corroborated previous findings on simultaneous media consumption.
June 19th, 2008
Previous Posts