The Fourth Companion

November 25, 2004

From SlashDot

Can People Really Program 80 Hours a Week?

Interesting thread :)

Microsoft Replaces Your Pirated Windows For Free.

From ZDNet "To get a replacement copy of Windows XP, PC users will need to send off their receipt and complete a witness statement, revealing where they bought their knock-off software."

*eghm* .. .so that's the catch!

November 24, 2004

From Gizmodo: "Amazon Japan has introduced a flattering new feature called 'Amazon Scan Search.' After users download an application to their cell phone free of charge, they can scan barcodes of ordinary products, which in turn enables them to search the cell phone version of Amazon.co.jp for the respective product. Once they get a result on their search, they can then choose to purchase the item right from their phone."

Give away the recipe, open a restaurant.

"One very instructive recent case is Digital Creations (Now the Zope Corporation), a website-design house started up in 1998 that specializes in complex database and transaction sites. Their major tool, the intellectual-property crown jewels of the company, is an object publisher that has been through several names and incarnations but is now called Zope.

When the Digital Creations people went looking for venture capital, the venture capitalist they brought in carefully evaluated their prospective market niche, their people, and their tools. The VC then recommended that Digital Creations take Zope open-source.

By traditional software industry standards, this looks like an absolutely crazy move. Conventional business school wisdom has it that core intellectual property like Zope is a company's crown jewels, never under any circumstances to be given away. But the VC had two related insights. One is that Zope's true core asset is actually the brains and skills of its people. The second is that Zope is likely to generate more value as a market-builder than as a secret tool.

To see this, compare two scenarios. In the conventional one, Zope remains Digital Creations's secret weapon. Let's stipulate that it's a very effective one. As a result, the firm will able to deliver superior quality on short schedules—but nobody knows that. It will be easy to satisfy customers, but harder to build a customer base to begin with.

The VC, instead, saw that open-sourcing Zope could be critical advertising for Digital Creations's real asset— its people. He expected that customers evaluating Zope would consider it more efficient to hire the experts than to develop in-house Zope expertise.

One of the Zope principals has since confirmed very publicly that their open-source strategy has "opened many doors we wouldn't have got in otherwise" [sic]. Potential customers do indeed respond to the logic of the situation—and Digital Creations, accordingly, is prospering.

Another up-to-the-minute example is e-smith, inc.. This company sells support contracts for turnkey Internet server software that is open-source, a customized Linux. One of the principals, describing the spread of free downloads of e-smith's software, says ``Most companies would consider that software piracy; we consider it free marketing"

Give away the recipe, open a restaurant.

~ Eric S. Raymond, The Magic Cauldron.

The Delusion

".. when a software product's vendor goes out of business (or if the product is merely discontinued), the maximum price consumers will pay for it rapidly falls to near zero regardless of its theoretical use value or the development cost of a functional equivalent. (To check this assertion, examine the remainder bins at any software store near you.)

The behavior of retailers when a vendor folds is very revealing. It tells us that they know something the vendors don't. What they know is this: the price a consumer will pay is effectively capped by the expected future value of vendor service (where `service' is here construed broadly to include enhancements, upgrades, and follow-on projects).

In other words, software is largely a service industry operating under the persistent but unfounded delusion that it is a manufacturing industry.

It is also worth noting that the manufacturing delusion encourages price structures that are pathologically out of line with the actual breakdown of development costs. If (as is generally accepted) over 75% of a typical software project's life-cycle costs will be in maintenance and debugging and extensions, then the common price policy of charging a high fixed purchase price and relatively low or zero support fees is bound to lead to results that serve all parties poorly.

Consumers lose because, even though software is a service industry, the incentives in the factory model all work against a vendor's offering competent service. If the vendor's money comes from selling bits, most effort will go into making bits and shoving them out the door; the help desk, not a profit center, will become a dumping ground for the least effective employees and get only enough resources to avoid actively alienating a critical number of customers.

To handle the real cost structure of the software life cycle efficiently (in both the informal and economics-jargon senses of `efficiency'), we require a price structure founded on service contracts, subscriptions, and a continuing exchange of value between vendor and customer. This is already the price structure of the largest merchant software products such as ERP (Enterprise Resource Planning) systems, for which the development costs are so large that no fixed purchase price could possibly cover them; firms like Baan and Peoplesoft actually make their money from after-sale consulting fees. Under the efficiency-seeking conditions of the free market we can predict that this is the sort of price structure most of a mature software industry will ultimately follow."

- Eric S. Raymond, The Magic Cauldron

Leveraging the ideas of others

".. become a category killer, one of those that fills its niche so competently that the alternatives [read: competition] are not just discarded but almost forgotten.

.. you can't really aim or plan for a result like this. You have to get pulled into it by design ideas so powerful that afterward the results just seem inevitable, natural, even foreordained. The only way to try for ideas like that is by having lots of ideas—or by having the judgment to take other peoples' good ideas beyond where the originators thought they could go.

Interestingly enough, you will quickly find that if you are completely and self-deprecatingly truthful about how much you owe other people, the world at large will treat you as though you did every bit of the invention yourself and are just being becomingly modest about your innate genius.

it is not critical that [you] be able to originate designs of exceptional brilliance, but it is absolutely critical to recognize good design ideas from others.

You [also] need to attract people, interest them in what you're doing, and keep them happy about the amount of work they're doing. Technical sizzle will go a long way towards accomplishing this, but it's far from the whole story. The personality you project matters, too. To make [this] work, it helps enormously if you have at least a little skill at charming people.

But what [about] leadership style? They cannot be based on power relationships—and even if they could be, leadership by coercion would not produce the results we see. Weinberg quotes the autobiography of the 19th-century Russian anarchist Pyotr Alexeyvich Kropotkin's Memoirs of a Revolutionist to good effect on this subject:

Having been brought up in a serf-owner's family, I entered active life, like all young men of my time, with a great deal of confidence in the necessity of commanding, ordering, scolding, punishing and the like. But when, at an early stage, I had to manage serious enterprises and to deal with [free] men, and when each mistake would lead at once to heavy consequences, I began to appreciate the difference between acting on the principle of command and discipline and acting on the principle of common understanding. The former works admirably in a military parade, but it is worth nothing where real life is concerned, and the aim can be achieved only through the severe effort of many converging wills.

The severe effort of many converging wills is precisely what [is required]. To operate and compete effectively, [you] have to learn how to recruit and energize effective communities of interest in the mode vaguely suggested by Kropotkin's principle of understanding."

- Eric S. Raymond, The Cathedral and the Bazaar.


November 23, 2004

The Delphi Method

The Delphi Method: Techniques and Applications--Harold A. Linstone and Murray Turoff (Eds.)--1975

November 22, 2004

Mmm...

PDAgold.com :: Article :: Windows Mobile 2005: veil lifted on new PDA OS

http://www.bargainpda.com/default.asp?newsID=2268

November 17, 2004

Ramblings for today ..

I don't claim that I know everything that is the essence of IT education, but one component that I firmly believe should be in IT education is the ability to honestly and clearly communicate technical complexity .

I think it's sad that information technologists (the term i use to refer to programmers, system analysts, architects, and the likes) are encouraged - and to some extent are even penalized if they fail - to simplify the complexity of a technical artifact.

Some technical artifacts (whether it is a system, or a sub-system, or the likes) are complex by nature, and forcing simplification isn't really doing anybody any favours. It's like forcing your goalkeeper to "be nice and sit down" for the duration of the game and still maintain a clean sheet.

In IT, conquering complexity is the name of the game. Ignoring complexity is a sure way to lose the game. (Note: there's a difference between ignoring complexity and 'managing complexity'; the second involves still being honest about the level of complexity involved).

I've done a project once where I've spent almost 3 months designing and building a system and in order to help my superior understand the system, i've removed the technical details and presented only the 'gist of it all', i.e. the functional scope and a very high-level abstraction of the architecture. The response I got was: "this is to simple, this is not even a system.". Back then, I've totally lost the game because I failed to communicate the complexity of my work; the work got thrashed not because it's not good enough, but because I forgot to pop open the hood and let the guys take a peek at what's inside.

Being able to honestly and clearly communicate technical complexity is important. But it's hard, it's hard for many reasons. The complexity itself is a culprit; the fact that most problems are even too complex for the technologist to comprehend is another culprit.

But there's another group of troublemakers. These are those who see 'anything technical' with great fear; people who'd be intimidated at the thought that there is something of great complexity that they cannot comprehend. And so, they'd rather see it as the failure of the technologist for not being able to simplify technical matters into something that is understandable.

I'm sorry, some things are complex by nature; and communication is like dancing, all members of the party must participate, and that means you either be ignorant or try to master the complexity of the problem at hand. Putting the blame on another person saying "you guys are so technical; you don't communicate well enough", when the technologist have tried his/her best to communicate the complexity of the matter is not a good excuse.

The idea that I'm trying to convey is that technical communication education is a must for even people who claim that they are non-technical. This education involves accepting that some things are complex by nature, and that it's never only one person's responsibility to 'hide all that under the hood'; mastering complexity should be on the mind of every person in the team.

So in summary, I've mentioned three things:

1) honest and clear technical communication is a must-have item in any IT education
2) it's a must-have because complexity is the name of the game in IT
3) the education is not only for technical people, but also for non-technical people because mastering complexity requires a team-game; it's never one person's responsibility.

November 16, 2004

Symbolic Vehicles

I took this weekend off to digest a couple of pages from Russel's History of Western Philosophy. Hidden in the materials about greek and european philosophies that have shaped the modern world as we know it, I encountered an interesting passage about the need for state.

It is mentioned (as I recall it - I don't have the book with me right now), that a state (read: a country/nation) is a medium for achieving two seemingly contradictary objectives: the fulfillment of individual needs, and social cohesion.

To the observer, a pattern might emerge, and that is the pattern of what I call as 'symbolic vehicles'. The state serves as a symbolic vehicle that help individuals in the state to achieve common goals (these maybe included in the state's constitution or founding principles), to resolve conflics that arise among individuals as they strive to meet these goals, and to address the needs of the state entity itself (social cohesion can be considered as a need of the state entity).

The realization of this pattern is everywhere. The symbolic vehicle we call 'family', that which we call 'a company', that which we call 'a church', 'a community', and so on.

Noticing this pattern is quite straightforward, and seeing this pattern is essential to understanding why politics and bureaucracies are needed. What I find refreshing and insightful is the understanding that the vehicle has utility in helping its members achieve seemingly contradictary objectives.

In a way, a symbolic vehicles act as an interface that transform selfish needs into common good. Of course, the implementation of this interface is a different matter, and it varies, ranging from the brainwashing and manipulation of the individuals, to the use of power (whether political or physical force) to crush the opposition :-)

With all that in mind, I can't help asking this question: in which scenarios do powerful individuals atttempt to recruit other individuals into a seemingly 'grande and noble symbolic vehicle' (whether it is a state, a company, a collaboration, a religious entity) for the purpose of making it easier and more practical to crush and manipulate these other individuals ?

November 13, 2004

Next Generation iPods

The rumors that circulates regarding the features of the next generation iPod is worth taking a careful look at.

For one, the Home on Ipod and Video on iPod ideas are simply awesome. The idea of being able to take your "Home Directory" - long with your documents, video clips, music files, photos - where-ever you go in your iPod and login to this Home Directory with any mac or even an apple-dock-enabled TV/VCR is amazing. Sun came up with this mobile desktop concept, but Sun didn't have a cool iPod to house the 'data'. Kudos to Apple for making this thing for real!

Another iPod variant rumoured to be produced next month and to be released early 2005 is the flash-based Ipods, said to be 1GB in capacity, about 200 USD in price and much much much smaller than the iPod mini.

The Two Paths

My recent readings gave me a brief look at the two basic paths that people devote themselves to.

The first path is often called the Left-Hand-Path (LHP) (Ref: DPJS Website, Wikipedia). Its followers have the perfection of the invidual psyche as their ultimate goal. They seek psychological and intellectual maturity. They seek the refining themselves such that they possess 'true awareness' and 'true knowledge' of reality. They seek self-empowerment and religiously devote themselves to the improvement of self-consciousness and their ability to wield their will to manipulate reality. In essence, LHP focuses on the development of individuals into gods and masters of their own destinies.

The second path is often called the Right-Hand-Path (RHP). In place of 'true awareness and knowledge of reality', the followers of RHP have Faith. In place of 'true self-consciousness and will-power to manipulate reality', the followers of RHP have Love. Instead of developing themselves into masters of their own destinies, the followers of RHP believes that a greater being (or beings) is in control of reality and does so for the good of all; RHP followers believe in providence.

The LHP followers believe that much of the individuals in this world - either by worshipping false gods that dictate what can or cannot be done, or by some oppresive experiences in their lives - have been conditioned into tame and impotent beings posessing herd mentalities, pale sad versions of their true potentials. They also believe that RHP followers are either blatantly ignorant or foolish, as the restriction of the selves causes imbalance, and unmet desires and needs will only cause damage and eventually lead to destruction.

LHP followers do not believe in Sin, and for this matter have strong resentments towards dogmas and moral codes. Though LHP followers need not see the need of a 'being or deity' as the focus of their worship, they often choose the figure of Satan (or the Devil) as a symbol of worship. The reason for this is twofolds (Ref: Temple of Set): 1) because Satan embodies the noble characteristics that the LHP followers see as virtues, such as independence, creativity, honesty, artistry, and intellectual genius, and 2) to rebel against the popular moral/ethical conditioning of society that made the Satan figure an 'evil scarecrow' that is despicable and to be avoided.

Some have taken the Matthew 25:32-33 into this context,

"All the nations will be gathered before him, and he will separate the people one from another as a shepherd separates the sheep from the goats. He will put the sheep on his right and the goats on his left.",

as goats are known to be creatures of strong invididual will and would not follow, and sheeps are known to be docile creatures.

November 10, 2004

My first Sun JVM Bug.

J2SE 1.4.2_06...

java.lang.NullPointerException
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:691)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)


Hmm.. turns out it's just bad programming on 'their part'. i.e. not disclosing where the Null Pointer Exception occured. I managed to track it down to the InputStream that is returned by the URLConnection object that is returned by the URL object when doing an openStream()....

The sony U750P Handtop

Check it out.

It's too cool.

1GHz Pentium M chip, 512MB RAM, 20GB HD. MemoryStick/CompactFlash support. 802.11B/G Enabled.

It's 1.21 lbs.

It's more powerful than a PDA.

It's much much smaller than even a tablet PC.

It docks to your keyboard/monitor.

It runs XP, it does handwriting recognition.









It's 2000 USD - Hmmm :)

November 09, 2004

Memories

Moments come and go
but memories often linger

Watching us in silence
Amazed and dumbfounded
at how proud, over-confident
yet confused and foolish
we are.

"Master, come and listen!", they shouted.
"Master, don't you remember?"
"Master, please don't forsake us!", they plead.

But our heads turned to look not.
For the ears have long forgotten how to listen.
And the eyes have long forgotten how to see

And into the dark corners they crawled back
orphaned, unwanted, abandoned.

drenched in tears
drowning in agonizing pain
until they are remembered no more

and death becomes them.