Shahzad Bhatti Welcome to my ramblings and rants!

September 30, 2004

Best Practices 2004 (East)

Filed under: Computing — admin @ 6:36 pm

Best Practices 2004 (East)
I was in Boston during the week of Sep 20, 2004 and attended Best Practices conference. It was sort of fun, I get to see faces behind author of many books I own and articles I enjoy a great deal.
Here are excerpts from a few of noteworthy lessons:

Tom DeMarco’s five core risks for technology projects:
  • Size inflation: The project grows beyond the basic set of functionality into the realm of impossibility.
  • Original estimate flaw: Management sets a date that has no statistical relevance to reality.
  • Personnel turnover: “This is your biggest risk if your project is anything over a year,” according to DeMarco.
  • Failure to concur: A breakdown among the interested parties, often culminating in litigation.
  • Productivity variation: The difference between the assumed and the actual team performance

Finally, DeMarco presented a useful self-test for checking to see whether you’re actually doing risk management:

  • Is there a census of risks with at least 10 to 20 risks on it?
  • Is each risk quantified as to probability and cost and schedule impact?
  • Is there at least one early transition indicator associated with each risk?
  • Does the census include the core risks indicated by past industry experience?
  • Are risk diagrams used widely to specify both the causal risks as well as the net result (schedule and cost) risks?
  • Is the scheduled delivery date significantly different from the best-case scenario?
MIT Portfolio Pyramid

The projects in four asset classes: infrastructure (allowing basic enterprise capability; improving flexibility and integration), transactional (focusing on reducing cost and boosting productivity), informational (based on information for managing the company) and strategic (focusing on sales growth and competitive advantage). Based on your company’s objective, the proportions in each of the four classes vary.

Abstract Prototyping

Interface designers have basically two prototype choices: figurative (conventional pictorial representations that reflect what the user actually sees) and abstract (conceptual diagrams, notations and descriptions). And since abstract prototypes isolate and simplify design decisions, Constantine, a self-professed third-degree wizard, likes starting from the abstract before developing the figurative.

The process of deriving the abstract prototype using canonical components from task case steps included:

  • For each task case, identifying the contents without regard to the final layout on sticky notes.
  • Repositioning components to explore layouts (sticky notes were useful for this).
  • Sketching on paper or computer the size, shape, position and composition combinations.
  • Refining and redrawing as needed.
PM Metrices
  • Earned value: How many person days you need to do a project. Instead of focusing on how much time has elapsed, you should look at a particular deliverable, measuring what’s been accomplished and comparing the ratio of accomplishments made to the time used.
  • Release Criteria: Those few critical criteria that tell you when the project is complete.
  • Estimates versus Actuals for major and appropriate minor milestones: Rothman recommended starting estimates at what she called the “fuzzy front end” of the project so as not to get caught limping toward the finish line burdened with unwieldy—and unrealistic — expectations.
  • Tom DeMarco’s Estimation Quality Factor process, which provides a histogram of the most significant duality in project management: the date of estimate versus estimated end date. EQF is useful in three ways, Rothman stated: First, as an early warning sign to see if events outside your project are consuming people when they should be focused on your project; second, as a check against the initial estimations on your next project; and third, as a means of determining if you have a chance of completing the current project.
  • Measure the number of requirements early on in the project, as well as enumerating the number of major and minor changes per week over the course of the project, warning about the disaster potential of midstream major requirements changes.
  • Tracking defect trends can help project managers keep control of the process, enumerating how long it takes to fix defects, as well as their costs.
  • Fault Feedback Ratio, examining the total picture of productivity, asking the Big Questions “What do the creators create? How much is good stuff, and how much is redo?
  • Determining the number of defects that remain open and making sure developers aren’t getting stuck fixing the easiest problems first can go a long way in salvaging a project that seems headed for the barrel room.
Five principles guide good OO design, according to Martin:
  • The single responsibility principle (every class should do just one thing);
  • Cohesion
  • The open/closed principle (abstracting modules protect them from changes in implementation)
  • Modules should be open for extension,but closed for modification. Add new code for new functionality, don’t modify existing working code. Need to anticipate likely modifications to be able to plan ahead in the design. Plan ahead, but don’t implement what is not already needed
  • The Liskov substitution principle – All derived classes must be substitute-able for their base class Square cannot extend from Rectangle, violation will require Reflection/RTTI.
  • The dependency inversion principle (details should depend on abstractions, but not vice versa). In OO, we have ways to invert the direction of dependencies, i.e. class inheritance and object polymorphism.
  • Use DI to avoid deriving from concrete classes, associating to or aggregating concrete classes Encapsulate invariant: generic algorithms, Abstract interfaces don’t change.
  • Concrete classes implement interfaces, Concrete classes easy to replace.
  • The interface segregation principle – Many client specific interfaces are better than one general purpose interface. High level modules should not depend on low level modules. Both should
    depend.
  • Upon abstractions (interfaces) – Abstractions should not depend upon details. Details should depend abstractions.

September 6, 2004

Filed under: Politics — admin @ 9:57 am

August 24, 2004

A few articles and useful links:

Filed under: Computing — admin @ 7:22 pm

A few articles and useful links:
Amazon Web Services APIs

DrScheme

JbossIDE

Option Exchange

Outlook replacement

MockObjects Paper

Jini Guide ***

JAVAADN Paper

C24

July 15, 2004

Software Development Profession is Doomed?

Filed under: Computing — admin @ 5:44 pm

People have been saying this for a long time. Before the PC revolution, people thought that this profession will be reduced to maintenance work, which would be done offshored. In the 80s, Japan created software development factories and failed miserably because software development is not like other engineering schools or like manufacturing.

Since Nicholas Carr’s critique “IT doesn’t matter” in 2003, people have been joining the club. The phase I for this is already completed, where most of the jobs have moved to offshored. Though, at this time most of the offshore companies are simply sweatshops where workers work 14 hours a day and 6-7 days a week, in time they will be converted into truly software factories just as Japan imagined it 30 years ago. Phase II is will be the concentration of offshore companies to a few big houses. Phase III depends on another revolution, which is real software factories process such as software product lines, DSL and MDA based development, which will further reduce IT profession. Yeah, MDA and alike development are a little more than an idea, where tools may do a fraction of the work, but this ratio will shift towards automation within a decade. So ultimately, this profession already doomed in US and other western countries and it will be doomed globally in another few decades.

 

June 18, 2004

The Ability to See the Signs of God

Filed under: Politics — admin @ 6:15 pm

The Ability to See the Signs of God
It is He who sends down water from the sky. From it you drink and from it come the shrubs among which you graze your herds. And by it He makes crops grow for you and olives and dates and grapes and fruit of every kind. . There is certainly a sign in that for people who reflect. He has made the night and the day subservient to you, and the sun, the moon and the stars, all subject to His command. There are certainly signs in that for people who use their intellect. And also the things of varying colors He has created for you in the earth. There is certainly a sign in that for people who pay heed. It is He who made the sea subservient to you so that you can eat fresh flesh from it and bring out from it ornaments to wear. And you see the ships cleaving through it so that you can seek His bounty, and so that perhaps you may show thanks. He cast firmly embedded mountains on the earth so it would not move under you, and rivers and pathways so that perhaps you might be guided, and landmarks. And they are guided by the stars. Is He Who creates like him who does not create? So will you not pay heed? (Surat an-Nahl: 10-17)

In the creation of the heavens and the earth, and the alternation of night and day, there are Signs for people of intelligence: those who remember God standing, sitting and lying on their sides, and reflect on the creation of the heavens and the earth: “Our Lord, You did not create this for nothing. Glory be to You! So guard us from the punishment of the Fire. (Surah Ali-‘Imran: 190-191)

June 14, 2004

An excerpt from Were My African-American Ancestors Muslims

Filed under: Politics — admin @ 7:37 pm

An excerpt from Were My African-American Ancestors Muslims
At the time Columbus discovered America, Islamic Empires held greater power in the Western World than European kingdoms. They controlled the overland trading routes that transported oriental goods from the Far East to Europe, ruling from India to Western Africa. According to Allan D. Austin in African Muslims in Antebellum America, Islam had penetrated areas such as Senegal, Timbuktu, and the Lake Chad area in Africa by 1100 C.E. From these localities westward to the Atlantic Ocean, slave traders kidnapped the majority of their victims. The rise of European maritime trade in the 16th and 17th centuries triggered the decline of Islamic political supremacy and introduced new nations as world leaders.

Historians have identified many authentic Arabic texts written in the United States before the Civil War. Many of these manuscripts have been reproduced in the books listed below. When translated, most turn out to be memorized sections of the Qu’ran, revealing slaves’ struggles to maintain differing religious beliefs in an oppressive Christian nation. These writings also reveal high levels of education attained by the authors in Africa prior to enslavement and forced emigration. Unfortunately slavery has largely silenced our present knowledge of these educated people. It is known that slave masters often placed Muslim slaves as supervisors over their fellow bondsmen.

May 11, 2004

What do I think about Software Developers

Filed under: Computing — admin @ 5:44 pm

What do I think about Software Developers
I generally distinguish developers into following categories:

  • Day-Job vs bright-light chasers and real hackers
  • Generalists vs Specialists
  • Application Developer vs Tool Builder

    So, I consider myself hacker, generalist and tool builder. Like many other enthusiastics, I chase any new computer technologies and after chasing Java, Jini, CORBA, and J2EE for many years, I have putting more focus lately on light-weight J2EE, JXTA, J2ME, aspect-oriented programming, ruby and rails.

May 4, 2004

Tits and Bits from Matrix Trilogy Movies

Filed under: Science — admin @ 9:59 pm

Tits and Bits from Matrix Trilogy Movies
The Matrix trilogy has been one of the best thought provoking and scifi
movie of all times. Everyone was blown off with the first movie.
The special effects and marshal arts were out of the world
and were an order of magnitude superior than anything presented previously.
Second and third movies did not prove to be commercially as successful as one.
The second and third movies were only incrementally better and many
people who did not pay attention to the backdrop of the story
were disappointed.

So, what is the real message of the trilogy and how it applies to our world.
First question raised in the first movie was “What is the matrix?”
The matrix is the world that looks real, but it’s not.
This is similar to concept of “Maya” or illusion in Hinduism.
In order to see the realy, you need to unplug from it. This applies
directly to the world we live in, where most of us would rather have taste
steak than the reality. The main premise of the movie is that human race is
turned into slaves by machines that use human as energy resource. The movie
shows how all humans are plugged into the matrix, which is very similar to
how most people live in our world. Most people are too tied up with
the matrialistic race to notice any thing else. In fact, movie shows that
some people cannot be unplugged especially after reaching certain age.

Here are some of the tit bits that I have found interesting:

Religions

The movie borrows a lot of ideas from religions such as Christianity, Buddhism
and Gnosticism. The protagonist of the movie is named Neo, with real name of
“Thomas A Anderson”, who is doubtful at beginning like “Doubting Thomas”,
but is helped by Morpheus. Morpheus plays the role of “John the Baptist”
and teaches Neo, the reality of matrix and true potential of Neo.

System

The movie shows how matrix is a system, where humans are plugged in and work
for the machine. It is sort of how real world where everything is inter-related
and governments use the system to control humans. The only way to be free
from the matrix system is to be awaken sort of like awakening concept in
Gnosticism.

Control

The machines control the lives of human beings by the system of matrix, which
is like our world includes things like media, education, corporate. The movie
shows that 99% of people are docile and will believe anything, again we
see our government lie and most people believe those lies. In our world, we
have seen secret societies such as Freemasons, Illumanati, Skulls and Bones,
etc. or a few families, who supposedly have been controlling worldly affairs.

There aren’t any coincidence

The machines have very advanced AI that can predict future actions based
on chemical reaction in the brain of humans. As the Frenchman “Merovingian”
says, every action has consequences.

Purpose

Every program has purpose and without the purpose, program cease to exist. This
also relates to humans as one of the fundamental question is finding purpose in
life. Without the purpose, humans are totally plugged in to the world and live
like zombies. The oracle talks about purpose as well, when she says, “we are
all here to do what we are here to do.”

Reality

There is no spoon, the movie also describes variations of realities. To
the people living in the matrix, that is their reality. People who
are supposedly free and live underground or in Zion think their world is real.
Though, truth is that machines control both world. This also reminds of
some Star Trek movie of holodeck within holodeck and in this movie, it is
matrix within matrix.

Fate

The movie also dicusses topic of fate as when Neo was asked whether you
believe in fate he replies, “no, because I don’t like the idea that I am not
in control.” The frenchman also explains that there is no fate, everything
has cause-effect relationship.

Faith

Faith and Fate go hand in hand.

Love

Love plays very central theme in the movie, as in the second part Neo chooses to
save his love “trinity”, while refusing to return to the source, thus
jeopardizing entire human race. He also brings back trinitiy back to life with
his love. The Frenchman “Merovingian” also sees chemical response of love to
insanity. However, AI managed to create love when two programs who looked
like indians created another program in the form of their daughter. The
movie also shows that love need sacrifice as Neo sacrifices entire human
race to save Trinity or how two programs sacrifice themselves to save
their daughter.

Power

Some programs like Merovingian like to gain power as the keymaker is one part
of gaining more power.

Choice

Choice is also very interesting topic in the movie. A choice is an illusion
created between those with power and those who don’t. The matrix architect
learns that some humans need to make a choice even if they make it unconciously.
In fact, this is the reason why machines allow certain humans to escape matrix
and live underground, despite the fact that machines built the underground
infrastructure and city. As, the architect explains in second movie that 99%
of humans accepted matrix if they were given choice, so in order to control 1%
matrix creates another form of matrix in the real world.

God, Guards and Angles

The matrix shows Architect as God of matrix who designed the matrix. The
agents were sort of like guards and angels. In the Gnostic theology, it is
Satan not God, who created the world in order to imprison humanity.
The architect also had another female partner who helped design the matrix,
though the architect didn’t say her name. Though, most likely it was Oracle
as agent “Smith” called her mom. Also, protector of Oracle’s name is
Seraph, whose name means guard.

Reality

Reality is nothing more than manipulation of senses.

Messiah

Neo represents Messiah of mankind. He is not the first one, but rather sixth.
Some people suggest, first five represent first five books of Moses and
sixth represent Jesus.

Zion City

The zion city is last free city where humans are free. The zion city is
promiseland like Jerusalem.

Know Yourself

Knowing yourself is the key, you cannot see beyond the choices you don’t
understand.

Apart #

Neo’s apartment number is 101 and he dies in firs movie in room 303.

Unanswered Questions

  • Do humans really make good source of energy? It sounds like not very efficient.
  • How do Neo gets his powers?
  • How do Neo sees his future?
  • What is relationships between architect and machines? Are all machines
    have centralized control or distributed?

  • How did Neo end up at Mobil Ave?
  • How exactly Neo killed Smith and his clones in the end? Was it virus?
  • How does Neo power work in real world unless it is another matrix.
    Was Merovingian “One” in one of previous iterations of the matrix. Note that
    Merovingians were rulers of france until 7th century. Also, according to
    some theories, the wife of Jesus, Mary Madeline escaped to France, and
    her daughter “Sara” married into Merovingian family. This ties Merovingian
    with the Messiah.

Other References

  • The movie also makes references to white rabbit, dorthy, etc.
  • You don’t know someone until you fight them.
  • Original number of free human beings were 23, where 16 were female and 7 males.

April 15, 2004

Java Developer Journal Reports

Filed under: Computing — admin @ 8:27 pm

Java Developer Journal Reports
FTPO nline Storage
FTPO nline Testing
FTPOnline Lifecycle
FTPO nline Operation
FTPOnline SOA

April 14, 2004

CD Copying Software

Filed under: Computing — admin @ 5:52 pm

CD Copying Software

« Newer PostsOlder Posts »

Powered by WordPress