An update to my PHP encryption class. Despite the name, it's becoming a pretty sophisticated encyption machine. New encryption algorithms added: Vigenerè cypher One-Time Pad Bruce Schneier's Superencyption Various other methods using the MCrypt library The TrivialEncoderManager class has been obsoleted by TE_Machine, an abstract class with several different child classes for encoding, decoding and […]

Sequential Video Thumbnails on Linux

So, I was looking for a way to create sequential video thumbnails (like this one) from a video file on Linux. I found that my options were severely limited. On Windows there are a plethora of tools capable of this fairly simple task, including Media Player Classic, but on Linux all I could find was […]


Today marks the 30th anniversary of the day Elvis Presley faked his own death.

Command Line Interfaces, Again

I posted a couple of years ago that the command line is the interface of the future. Today I stumbled on a couple of articles that seem to agree with me: Command Line for the Common Man: Command Line Comeback The Power of Command Lines Quicksilver blows away both Apple’s Dock and Microsoft Windows’ Taskbar […]

Open Mobile Alliance DTD Oops!

The Open Mobile Alliance, who are responsible for co-ordinating the web-browsing efforts of mobile phones, seem to have misplaced xhtml-mobile12-model-1.mod. This file is a key part of the DTD for the latest version of their XHTML Mobile Profile standard, which defines how authors should construct web pages intended for the consumption of mobile phones. Now […]

PHP Encryption Class

Here’s a simple PHP library for encoding and decoding text. Examples: TrivialEncoder.class.php (Highlighted source code.)

Cryptography Challenge

Here’s a challenge. Decrypt… aWt6eWZlaWEKfWJjeWFvcwppa3p5ZmVpYQpvaWJlCmZjZ2sKZmNnawp5 emtpbwpub2Z+awpleWlreApkZXxvZ2hveApvaWJlCmhrZG0KeXpraW8Ka Wt6eWZlaWEKemt6awppa3p5ZmVpYQpmY2drCm9pYmUKa2Z6YmsKeW NveHhrCm9pYmUKeXpraW8KZmNnawpvaWJlCmtmemJrCnxjaX5leApvaW JlCnl6a2lvCmtmemJrCnl6a2lvCmlia3hmY28KZXlpa3gKZ2NhbwpnY2FvCm9 pYmUKZGV8b2dob3gKfmtkbWUKeXpraW8KZXlpa3gKZGV8b2dob3gKeX praW8KfmtkbWUKZXlpa3gKaHhrfGUKc2tkYW9vCmNkbmNtZQpkZXxvZ2h veAphY2ZlCnljb3h4awp+a2RtZQpvaWJlCnhlZ29lCnl+ZXoKaWJreGZjbwpl eWlreAp5fmV6Cn9kY2xleGcKYWNmZQp5emtpbwppYmt4ZmNvCmZjZ2sK a2Z6YmsKY2RuY21lCmdjYW8KY2RuY21lCmRlfG9naG94Cm1lZmwKeXpra W8KaWJreGZjbwp4ZWdvZQpvaWJlCm5vZn5rCmNkbmNtZQp+a2RtZQp5f mV6

Parsing an HTML Table with PEAR’s XML_HTMLSax3

Here’s an example of how to parse an HTML table into an array using the PEAR module XML_HTMLSax3. It supports the , and elements and the rowspan and colspan attributes. It’s worth noting that this code will raise a bunch of notices if you run it displaying all errors. This is pretty difficult to avoid, […]