Hey, now with https

Thanks, Let's Encrypt!

OSM Maps on Nüvi 30 gps

The little nüvi GPS from Garmin are (at least when I bought ours back in 2011) cheap, nice little devices for non-internet dependent navigation.

One problem I wasn't able to overcome until recently was getting updated maps in the form of OSM streetmap exports recognized on the device. Yes, I had downloaded Garmin formatted maps from various sites. Yes, I had put them on the SD card in a folder named "Garmin". No, they never showed up. Turns out for some nüvi devices, including the nüvi 30, the folder needs to be named "Map", as mentioned offhand by someone on a forum. Yes!!!

My letter to the W3C CEO Re: DRM in HTML5

Dear Jeff

The idea of the web is not to enable movie studios to make money, or to enable developers to lock down content for those that do not pay. The idea of the web is to enable free access for information to all. The fact that the standards-based web is competing well without DRM and putting pressure on the makers of un-free technologies like windows or flash, is a good thing. When the forces of openness are winning, why would our representatives surrender unconditionally? It would suggest the W3C is not really representing open access to information, but may be serving the needs of it's member companies Adobe and Micrsoft that are seeking to protect their proprietary business models that are currently being overwhelmed by the open web. The open web killed flash and silverlight, now the makers of flash and silverlight have joined the W3C to kill the open web.

If this proposal is standardized, I would be happy to support, or would personally investigate founding an alternative web consortium to replace the W3C, which would have clearly abdicated its responsibilities and abandoned its mission.

Thank you,



Grep for php deprecated calltime pass by reference

grep -rin '\&\$' /path/to/your/codebase | grep -v function | grep -v '\=\ \&\$' | grep -v '\=>\ \&\$'| grep -v foreach | grep -v \@param | less

You'll still get a bunch of junk to pick through, but only a screenfull instead of 30.

PDO hates punctuation in placeholder values

If when upgrading a drupal module from Drupal 6 to Drupal 7 one hits an error like the following:
PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter

One may have problems with the formatting of the placeholder values for PDO. For instance several drupal.org threads talk about when dynamically naming these values, make sure not to put a colon (:) ine them. In my own case, of upgrading the e_activist module to drupal 7, it was the dots in table aliases that made PDO stumble.

This is OK:
$result = db_query("SELECT * FROM {e_activist_page_map} WHERE nid = :nid AND page = :page AND submit = :submit", array(':nid' => $node->nid, ':page' => $page, ':submit' => 1));

This was not (Note the e.xxxx in placeholder names)
$result = db_query("SELECT * FROM {e_activist_page_map} WHERE nid = :e.nid AND page = :e.page AND submit = :e.submit", array(':e.nid' => $node->nid, ':e.page' => $page, ':e.submit' => 1));

So if you need to differentiate between tables in placeholders, think up your own difference... maybe "e_" instead of "e.". Only alphanumeric and underscore are valid. (http://stackoverflow.com/questions/5809951/pdo-valid-characters-for-placeholders)

Bitcoin as a viable model for Anonymous, valuable identities on the internet?

I hate spam. Anonymous people wasting your time and resources for their commercial gain with no way to track them down and blacklist them is a significant problem. Any identity of theirs that you blacklist is so cheap that it is instantly replaced with 10 new ones.

I also hate all current services that establish identities but do so in very dangerous ways. Users are asked to invest time creating these identities by websites, ostensibly either for the purpose of building community context about each other (for instance Facebook profiles), or as a way of preventing spam (Disqus logins). Many sites are simply looking to build human or human looking identities in order to sell them to advertizers. These sold and resold private identities, or the more limited yet more sinister dossiers compiled on us by various law enforcement agencies, are becoming dangerously complete weapons aimed at any concept of a private life for people on this planet. When Eric Schmidt said that privacy is dead, he underscored just how far business models that sell our identities as goods will go to turn every atom of who we are into pennies bouncing through a global Rube Goldberg machine.

So, what we need is a concept of identity that will subvert both of these problems. Have we already seen the solution, and just not recognized it?

Lets use the mathematical ideas of bitcoin to solve the internet identity problem. We want identity to be anonymous where needed, decentralized, with no central authority allowed to be the final arbiter, and no advertiser able to turn our internet name into a product to be sold. At the same time, the problem of SPAM, and the need for some trusted identity for community building teaches us that identities should not be so cheap and disposible that one can use them for antisocial or fraudulent purposes without reckoning some cost.

In this system, (call it Bitvoice?), identities would be created based on solving some number problem similar to the hash collisions used by Bitcoin. This would have to be a significant effort, perhaps somewhat easier that discovering a bitcoin, but significantly more costly than just generating an RSA public private key pair. An algorythm should be selected that would generously outpace, but not totally become unhinged from expected population growth of humans (and any other intelligent beings with identities we expect to need to communicate with). The resultant solution would represent an identity that could be used to communicate online. The identity should be cryptographically identifiable as the same identity, should be not inherantly traceable to a human except through the content of communication it chooses to produce, yet should be expensive enough that the blacklisting of this identity as a spammer or a troll would be a small, but significant financial setback.

Dissidents or people who need anonymity could use newly computed or donated identities to do their work, while spammers, who require millions of fraudulent identites to eek out a fraction of a cent in returns would be quickly bankrupted or have to rely on botnets to slowly regenerate blacklisted identities. So, itentities could be tuned to the right scarcity for nurturing a well balanced online society.

The initial distribution of identities would be the big problem with this system. How can the average John Q Public, or the average child in Mumbai get a small number of identities to work with initially, with some being able to be registered for government services and benefits an others able to be kept anonymous?

Anyway, I think there might be something to think about here. What if we could actually find a technical framework that would balance anonymity and identity towards a happy medium? That would be a good day indeed.

Mysql client can't resolve host

ERROR 2005 (HY000): Unknown MySQL server host 'db.example.com' (-1)

If your mysql client software --everything including gui and cli tools-- dies with the previous error after asking for a password, then you either have a DNS problem (most likely) or you may have a freak issue where a line in your /etc/hosts file has gotten too long.

Thank god for mdavidn over on the ubuntu forums who figured this one out.

I got into the issue because networkmanager kept splicing my workstation hostname into my hosts file until that line got like 3000 characters long.

It was totally a crazy problem to troubleshoot, because wireshark confirmed that my local mysql-client was not even sending out any requests over the network, and reinstalling and wiping out local mysql client configuration didn't help at all.