Monthly Archives: June 2006

 This article

The Arcelor chief executive, Guy Dollé, described Mittal as a "company of Indians" whose steel was "eau de cologne" to Arcelor's "perfume." When Mittal persisted, Arcelor's management brought in a Kremlin-backed Russian bidder as a white knight, whom Arcelor's chairman described as a "true European."

   
And this

For Mittal, the Indian-born steel magnate, the deal caps an effort that lasted decades to rise from the shadows to build a global steel conglomerate. Born in an village without electricity in India's Rajasthan state, to the desert- dwelling Marwari merchant clan, Mittal became something of a symbol of globalization, for its supporters and critics alike.

To the former, he is a new-age, borderless businessman shaking up the genteel, antiquated ways of "Old Europe."

Ha Ha Ha…..

del.icio.us Tags:

  

Very recently I had a problem with STL maps and the way it organizes data – come to think of it, it was an incorrect way of using it.

So the premise is simple – Have a composite class pointer  be the index into the map. The composite class can be constructed in very funky ways, so that simple pointer comparison to find the key in the map is not possible.

Now, maps usine Red-Black trees internally, with – the required Strict Weak Ordering criteria (iff a<b and b<a, then a match is found).

Now it took some investigation into the insert_unique and _M_insert functions of stl_tree.h to figure it out. 

When trying to find an element, the RB-tree algo starts comparing tree-element to candidate. If less_than is true, then go right and take new tree-element. If less_than is false, then go left and remember the tree-element is candidate. After all elements are done, then compare candidate to tree-element (notice the inversion). If that is ALSO false, then we have a match. In essence it is trying to find the deepest element in the tree that passes the strict weak ordering test with candidate.
Now in case of insert, it again does a find in the other order - i.e. first candidate to tree-element (go left in case of success) and then at the end (with no more nodes), tree-element to candidate.
Now here comes the interesting part, if the second check is also true then that is one condition of "strict weak ordering" - the subsequent  call to _M_insert
 checks for the other condition. Now it adds it to the left-child (if strict-weak-ordering passes, so that subsequent find works well) and right-child (if strict-weak-ordering fails).

All well and good. Now comes my blunder – I created a less_than function that imposes a double check. i.e.

condition X || conditon Y were true
   return false
else
   return true;
Now the problem with this was very simple – the need for two conditions arose because I thought I could devise a method of ordering differently from finding. What that means is that I could use condition X for ordering and condition Y for finding.
Why could'nt I have AND'ed them both then? That is because condition X  was not enforced on creation.
Take for example A + B . It is equal to B + A. But how do I check for both of them – let me begin by giving them an id number, which is a simple counter. If id's match then it is trivial equality (condition X).
However both could have different id's based on time of creation. Then I have to check for all elements in the two tuples (condition Y)

Now what happens in the condition I impose is that – Red-Black trees re-balance after a few steps. That means that the way I pushed them in will no longer be the way I can search for them (because of the ||  condition) and therefore it fails.
However there is another way to search for it – a little expensive but clean and predictable none-the-less.
del.icio.us Tags:

Today, I – a staunch open-source fan, tasted blood when I tried out Opera 9.
First of all, its the only browser to pass the Acid2 test, has its own integrated BitTorrent client and … its little brother works great on my mobile phone!

It is truly surprising that a small group of not-too-highly-paid, but brilliant programmers created software to outdo a collaborative effort (Firefox).

Seems to me as one example where the Cathedral won over the Bazaar.

del.icio.us Tags:

Scobleizer is leaving Mammon's bosom!

del.icio.us Tags:

There was an interesting article by one of the guys of BlueSpec, about how the threading model is deficient.

 It is a topic often touched upon by George Harper in several of his articles (and my comments! )

'Tis but a simple enough approach – Let thy not believe in thy own scheduling. Ask for what you want, and the compiler shall provide.

The problem with this is not the tech – which I wont argue for or against – but rather the value and business proposition of it.  The EDA industry is built on trust (or lack thereof). Design companies have teams which even work on the same problem simultaneously
 to cut down on the chance of error. 

The problem is in trusting the tool to generate good glue/scheduling logic. Apart from the obvious need for a system level sequential verification tool (which I wont harp upon ), there is the obvious problem on selling this proposition.

 I do hope they have good FAEs!!

del.icio.us Tags: