Archive for May, 2009

Performance Bonuses

I think that after reading things like this about taxpayer outrage at executive level bankers raking in performance bonuses for apparently tanking the world financial system, I’m starting to think that we’re wrong about the outrage.

Not that we shouldn’t be outraged about funnelling money to jackholes who buy and sell people like me during lunch … more that they really should get performance bonuses if it’s based on *performance*.

Look at what they’ve done: the upward motion of wealth from retirement funds and other previously untouchable funding sources, along with the end of the ownership society, yet their stockholders are still seeing money thanks to wheelbarrow loads of cash money straight from your grandkids’ future earnings. They’re raiding the *federal* coffers, eating tax money previously only available for bombing dark people and educating children, and moving that money into their vaults. I mean, if that isn’t an amazing performance, what is?

They tank the system, then get our money. Take a bow, you fat greedy pig fuckers. Hopefully a few more of you get cold-cocked before this thing blows over.

Private health Insurace will damn us all

There has been, for some time, debate in the United States regarding healthcare “reform”, as our current system does not serve a fair percent of the population, and out of those served, many are “underinsured”. From Michael Moore’s Sicko to Howard Dean’s offer to present the issue in front of Congress, there is no doubt that the system is horribly, horribly broken.

I believe the issue is a systemic one, hinging on the broken premise that “private insurance”, that is, pay-for-play insurance funded by either direct periodic payments or employer contributions, is a far superior method of providing healthcare. A publically traded company has a primary obligation to its shareholders and their dividends. This is a bit of an issue with health insurance, as the “proven way” of increasing margins is denying coverage to people.

Health insurance (otherwise known as “coverage”) is meant to provide healthcare without substantial out of pocket expenses, in an effort to keep your average worker from going bankrupt in the case of a medical emergency. Unfortunately, ever since Dick Nixon handed us over to the HMOs with the “HMO Act”, we as a people have been at the mercy of an industry whose sole purpose is to deny the majority of claims for coverage. There have even been deaths reported when insurers have failed to cover life-saving procedures. Many, many more slip through the cracks in the form of people who cannot received preventative maintenance through regular checkups, instead using emergency rooms and clogging that part of the healthcare system when their problems have reached a critical point.

Unlike other civilized countries, the United States says that it supports the “free market”… except when it doesn’t. Supports fiscal responsibility … except when it doesn’t. The “free market” and government administered health care are not mutually excusive — just that private insurance has much higher cost due to its profit margins. Of course, the jackholes at the CATO institute would like you to believe that it’s oh-so-much-more-expensive … because “Private insurers incur administrative costs to make sure they (and their customers) aren’t getting ripped off.”. Sure does sound like you’re going to get *way* more false positives, as if you weren’t dealing with a “throwing the baby out with the bathwater” situation to begin with.

The fact of the matter is that as long as private insurance companies have to make a profit, their best interests are simply not to make you healthy or pay for anything to help you get healthier. Anything to that effect is purely coincidental. Their primary motivation is to juice you for money to feed their shareholders, not to make you healthier. Don’t listen to them, they’ll do their best to speak in reassuring tones and tell you about the “social good” and the “free market”. But trust me, they’ll step over your rotting corpse on the way to the bank, and won’t even give it a second thought.

Single payer insurance. Say it with me …

Trixbox directory with Cisco Phones

In case anyone may want to use Trixbox with Cisco 79xx phones and wants to use a directory with it, I have put together a hack to deal with the directory services, which nominally require SugarCRM, so that they report simple extensions back in the appropriate format.

1) In the Endpoint manager, make sure that the services URL and directory URL are in the default configuration for Cisco phones, and restart any phones which are running to activate the configuration.

2) In /var/www/html/cisco/services, make sure that index_cisco.php is symlinked to index.php

3) In /var/www/html/cisco/services/DBConnect.inc, change the default username and password to something with access to the asterisk database, and change the database name to asterisk.

4) Make PhoneDirectory.php in that directory contain:

< ?php

##########################################
# Config section

$Server = "http://$SERVER_ADDR/cisco/services";   # don't add a trailing slash!
$LongDistanceExtension = ""; # change this to match your config

##########################################
#
# Set content type
header("Content-Type: text/xml");

# This is the include file that establishes the connection to the MySQL database
require ("DBConnect.inc"); 

# This sets the offset for the LIMIT portion of the query
$NextStartingRow = $NextSet*30;

# Connect to the database
$ConnectionSuccess = db_connect();
if (!$ConnectionSuccess) exit;

# If the variable "ID" is passed in through the GET string, then display
# extension, phone number and cell phone number for that record with the dial
# key functionality
if ($ID) {
        $PersonDirectoryListing = "\n";

        //$Query  = "SELECT id, first_name, last_name, phone_home, phone_work, phone_mobile, phone_other ";
        //$Query .= "FROM contacts WHERE id = '$ID' ";
        //$Query .= "ORDER BY last_name ";
        $Query  = "SELECT id,description FROM devices WHERE ( tech = 'sip' OR tech = 'iax' ) AND id = '".addslashes($ID)."' ";

        $SelectPersonInfo = mysql_query($Query,$ConnectionSuccess);

        while ($row = mysql_fetch_array($SelectPersonInfo)) {
                $WorkPhone = ereg_replace("[ ()-]+", "", $row['id']);

                $PersonDirectoryListing .= "\n";
                $PersonDirectoryListing .= "Extension:\n";
                //$PersonDirectoryListing .= "$LongDistanceExtension$WorkPhone\n";
                $PersonDirectoryListing .= "$WorkPhone\n";
                $PersonDirectoryListing .= "\n";
        }

        $PersonDirectoryListing .= "\n";

        echo "$PersonDirectoryListing";

# If the variable ID is not passed in on the GET string, then do the
# entire company directory, unless last is passed in. If so then we
# will be using a LIKE filter in our SQL query
} else {
        $PersonNameList = "\n";
        $PersonNameList .= "\n";
        $PersonNameList .= "
Please select one\n";

        $Query  = "SELECT id,description FROM devices WHERE ( tech = 'sip' OR tech = 'iax' ) ";
        //$Query  = "SELECT id, first_name, last_name, phone_home, phone_work, phone_mobile, phone_other ";
        //$Query .= "FROM contacts WHERE deleted = 0 ";

        # If we are searching by last name the add this filter to the query
        if ($LastName) { $Query .= "and description like '%$LastName%' ";  }
        $Query .= "ORDER BY id ASC";

        # If this is the first page of the company directory then we will display the first 30
        if (!$NextSet) {
                $Query .= " Limit 0,30";
        # Now for each subsiquent call we get the next 30 records.
        } else {
                $Query .= " Limit $NextStartingRow,30";
        }

        # Execute the query
        //echo $Query;
        $SelectNameList = mysql_query($Query,$ConnectionSuccess);

        # Count the number of rows returned. This is important because if a full 30 are returned
        # we will display a more option

        $NumberOfRows = mysql_num_rows($SelectNameList);

        if ($NumberOfRows >= 30) {
                $NextSetValue = $NextSet+1;
        }

        # Parse through the query and set up the menu items.
        while ($row = mysql_fetch_array($SelectNameList)) {
                $PersonNameList .= "\n";
                        $PersonNameList .= "";
                                $PersonNameList .= $row["description"];
                                if ($row["first_name"]) $PersonNameList .= ", " . $row["first_name"];
                        $PersonNameList .= "\n";
                        $PersonNameList .= "";
                                $PersonNameList .= "$Server/PhoneDirectory.php?";
                                $PersonNameList .= "ID=";
                                $PersonNameList .= $row["id"];
                                $PersonNameList .= "\n";
                $PersonNameList .= "\n";
        }

        # If we set NextSetValue above then we will display the more option. Which sets NextSet
        if ($NextSetValue) {
                $PersonNameList .= "\n";
                        $PersonNameList .= "MORE\n";
                        $PersonNameList .= "$Server/PhoneDirectory.php?NextSet=$NextSetValue\n";
                $PersonNameList .= "\n";
        }
        $PersonNameList .= "";
        echo "$PersonNameList";
}
?>
loading