Sadly the compare items are tightly linked to the visitor information.

The table catalog_compare_item has a column for visitor_id which when you disable the observers mentioned in your question, is set to 0 and so all visitors can see these items.

When you add an item to the compare list the visitor is linked into that item.

Mage_Catalog_Model_Product_Compare_List::addProduct calls the protected function _addVisitorToItem which gets the visitor id set from the log/visitor and attaches this to the item, as well as the customer id when you are logged in.

protected function _addVisitorToItem($item)
{
    $item-&gt;addVisitorId(Mage::getSingleton('log/visitor')-&gt;getId());
    if (Mage::getSingleton('customer/session')-&gt;isLoggedIn()) {
        $item-&gt;addCustomerData(Mage::getSingleton('customer/session')-&gt;getCustomer());
    }

    return $this;
}


Without limiting the compare functionality to logged in customers only I cannot see a way around filling these log tables as Magento needs to know what visitor is actually requesting the items to be compared.

Make the compare list work without filling the log_* tables?
An LED embedded in a small translucent item (say half the size of a pack of cards) that would flash on briefly if the object was disturbed or tipped over.
I immediately responded that a piezoelectric sensor/generator inside the object wired to an LED would do it.
However, when I tried to demonstrate this concept using a piezo buzzer I liberated from an old phone, I could only get the LED to register a dim blip when I smashed the piezo buzzer with a blunt object.
How would I ensure that a piezo sensor/generator would actually light up the LED adequately without the application of blunt force trauma.
As I mentioned, space would be an issue so no large parts, breadboards, or really complex circuitry.
I'm just trying to figure out the easiest and smallest way to accomplish this simple task.
Thanks a lot for any help you can give me!
