Using R to Fetch and Plot Cosm Data

I have a number of sensor devices that use Cosm as a cloud based store data.  Cosm provides a fairly easy to use system for storing, viewing, and reacting to data from sensor networks (or just about any other source).  The Cosm pages provide basic graph building functions but lack the ability to do any computations, overlays, etc.  To make use of this data more effectively it can be loaded into the R Statistical Computing software package.  R is a full featured statistical package that is freely available for all major operating systems.

This post describes the process of using the RCurl package to retrieve data via the Cosm API from within R.


BIND Per-Domain Forwarding (For iTunes / Akamai Speed Issues)

The use of public DNS servers, such as Google DNS or OpenDNS, can provide increased security and reliability.  They can also work around the DNS Hijacking employed by many ISPs (often to serve ads) [yes, OpenDNS by default hijacks some DNS queries (for the typo correction), but this can be disabled in their “Advanced Settings” pane].

One potential downside to these services is that CDNs (such as Akamai) often make use of the query origin to determine the best site from which to serve content.  Using the public DNS service can cause slower than expected content delivery since the CDN incorrectly identifies the origin of your traffic.  Apple makes use of Akamai services to distribute iTunes / App Store content, this can easily slow iTunes downloads or the viewing of content via Apple TVs.


BibDesk: Disable Google Scholar List Parsing Hidden Preference

When using BibDesk to import BibTeX items from Google Scholar I was seeing short beach-ball delays after loading each search page. Some searching turned up a release note entry about a “New hidden preference to disable parsing of Google Scholar result lists in the web group”, but no information on how to enable it. A bit of digging at the code revealed that the BDSKDisableGoogleScholarListParsing key needed to be set to a boolean value in the BibDesk shared preferences. The following defaults command does the trick:

	defaults write edu.ucsd.cs.mmccrack.bibdesk \
		BDSKDisableGoogleScholarListParsing -boolean true

PostgreSQL 9 bytea_output and CGI::Session

PostgreSQL 9 introduces a new bytea output format, hex. This new format can cause problems for programs expecting the traditional output format.


Deleting DigiNotar’s Root Certificate on Mac OS X

Recently a number of fraudulent SSL certificates for high profile websites, including Google, were obtained from the Dutch Certificate Authority DigiNotar.
These certificates could be used to impersonate or intercept legitimate services.
One method for dealing with this situation is to mark DigiNotar’s root certificate as untrusted.
Unfortunately due to a bug in Mac OS X DigiNotar signed EV certificates will still appear to be valid.
To work around this one can delete the certificate from the system trust roots with the following command:

	security delete-certificate -Z \
	 	C060ED44CBD881BD0EF86C0BA287DDCF8167478C \

Kerberos over TCP on OS X 10.7 (Lion)

With the release of Mac OS X 10.7 (Lion) Apple has switched from MIT Kerberos to Heimdal Kerberos.

By default Heimdal will attempt to communicate with KDCs over UDP.
In some cases it is desirable to default to TCP.
Heimdal can be instructed to prefer TCP by prepending the KDC hostnames in /etc/krb5.conf with tcp/.
For example:

			kdc = tcp/
			kdc = tcp/

OS X DirectoryService UUID case sensitivity

I recently ran into an issue where some new users with LDAP based accounts did not see any CUPS shared printers.
The solution turned out to be case sensitivity of the apple-generateduid attribute.


Xerox Phaser 6120 on Mac OS X 10.6 “Snow Leopard”

Update: It appears that Xerox is now distributing a 10.6 “Snow Leopard” driver package on their website.

According to the Xerox website the Phaser 6120 is not supported in Snow Leopard. However if one downloads the custom PPD file from the OpenPrinting database the printer works perfectly.

Full instructions follow:


Creating an empty git branch and pushing it remotely

Say you wanted to create an empty branch of an existing git repository.  That is a new branch with no history, say to track your project docs.


Checking for DNS Poisoning Vulnerability

Just a quick way to test and see if your DNS servers are vulnerable to the latest DNS Cache Poisoning vulnerability (CVE-2008-1447).


$ dig @ +short TXT

Replacing with the IP address of your DNS server(s).