October 29th, 2008
In no particular order, here are some things that I’ve found interesting, useful, or funny. Mostly useful.
Fluid
A Site Specific Browser (SSB) that you can use to run web applications in. I use it for BambooInvoice, ExpressionEngine and Campfire. It rocks my socks. Find it at http://fluidapp.com/.
Growl Notifications with messages for campfire and fluid
I tried using Pyro as a client for Campfire, but it didn’t go so well. It looks like promising software, but for now… wasn’t working. Enter my favourite app from above, Fluid handles it like a champ, but one thing that was bugging me was the lack of Growl notifications (if you aren’t using Growl yet and are on a Mac, go install it right now). First result in Google was Growl Notifications with messages for campfire and fluid. :: sniff ::... its like they read my mind.
Also useful is the Fluid Icons Flickr group. I’ve got to get one for BambooInvoice into there…
DataMapper
DataMapper is an Object Relational Mapper written in PHP for CodeIgniter. It is designed to map your Database tables into easy to work with objects, fully aware of the relationships between each other. Well documented and with a loyal following, it looks like Simon Stenhouse has a real winner on his hands. I’m hoping to find time to really sift through the code but so far haven’t had the chance.
[edit: And D’oh! I was a fool for not also mentioning IgnitedRecord at the same time! Thanks for the comment m4rw3r.]
Sequel Pro
Sequel Pro is a desktop program for managing your MySQL databases. It runs beautifully, and I think I’ve mentioned it before, but was asked again recently about it. The only catch I found is that with Mamp I needed to set the “socket” to “/Applications/MAMP/tmp/mysql/mysql.sock” when connecting.
ExpressionEngine Plugin: SS Friendly 404
The SS Friendly 404 plugin suggests relevant pages to users on your 404 page. It is used in your 404 template and returns suggested weblog entries based on the final segment of the 404 URL. Well documented and cleanly implemented. Well done!
jQuery Pumpkin
Found in the jQuery blog, the jQuery pumpkin had me smiling for 30 minutes.
Continue reading “Fluid, Campfire, DataMapper and useful links”. Posted in
Browsers, CodeIgniter, ExpressionEngine, Mac with 11 comments 
October 28th, 2008
George Ornbo over at ShapeShed (an EE shop, go admire the majesty) wrote a cute introduction to the PHP "if" statment. If you can't have fun with your code... well, then you just plain can't have fun.
I get a fair few requests from designers asking for help with basic PHP. So I'm going to write a series on very basic PHP. It is not hard so let's start with a robot and the if statement.
Not normally worthy of a mention, but he uses robots to explain, and everyone knows I'm a fool for robots; but also offers this masterful bit of PHP code (slightly altered, for brevity).
if ($button == "pressed") {
echo "I am alive and will now perform Sex Machine by James Brown";
}
else {
echo "Malfunction! Broken, destroyed, smashed.";
}
Why do I get the sense that this title is going to get me banned from Google?
Continue reading “PHP if statement explained with Robots and James Brown’s Sex Machine”. Posted in
How-To, PHP with 4 comments 
October 23rd, 2008
CodeIgniter 1.7.0 just released. Get it while it’s hot! New validation library, greatly enhanced form validation, some sexy loader enhancements and “whacks” of fixes including significant work in active record. For a list of all changes please see the change log. My personal favourite is this bug which I was proud to squash:
Fixed an edit from 1.6.3 that made the $robots array in user_agents.php go poof.
“Poof” you see… is the technical word for what was experienced. Now that’s good developin’ fella! Official announcement is here… but its not nearly as colourful as this post.
Continue reading “CodeIgniter 1.7.0 Released”. Posted in
CodeIgniter with 14 comments 
October 21st, 2008
For some work I’m doing right now I needed the current time output into the input field that the (excellent) jQuery datepicker uses, but I don’t need it selectable by the user. The default format is
mm/dd/yyyy
but can be formatted using the formatDate parameter. The list of formatting options is considerable, including predefined setups for ATOM, COOKIE, ISO_8601, various RFC dates, RSS, TIMESTAMP and even W3C. Unfortunately none of the predefined formats, nor the large list of date components includes time.
Read on for my solution to this dilemna.
Continue reading “Adding time to jQuery UI Datepicker”. Posted in
How-To, Javascript with 10 comments 
October 08th, 2008
This one scares me. Click jacking essentially is where various vulnerabilities in browser, OS and the Flash player allow a malicious user to use your camera and microphone without your knowledge. There are many variations on it, but today Adobe released an advisory statement on the implications within the Flash player, and now the beans are officially spilled.
I first read about it via Jeremiah Grossman’s blog, and then quickly thereafter on ha.ckers.org. The definitive proof of concept can be found at guya.net, and all things considered I actually have a Post It note over my camera at the moment.
These sources cover it much better then I could, but let me just say that what scares me mostly is the variety with which this can be executed. Javascript, CSS, iFrames, known browser or OS vulnerabilities. The only current (practical) way to protect one’s self is to cripple plugins (in todays world of YouTube… I don’t see that happening) or to permanently change the security permissions of the Flash player (Adobe’s instructions), probably needing to cripple them, otherwise one could get clickjacked back into restoring them.
Even more terrifying is what a hacker would have seen and heard coming from my office this morning. I’ll spare you the visuals, but it would have sounded like “Meow, meow, meow, meeeeeeoooowwwwwww!” and then “who’s a frisky girl… who’s a frisky girl”, followed by my cat making a nice big scratch under my eye…
Continue reading “Clickjacking: Web pages can see and hear you”. Posted in
Noteworthy with 5 comments 
October 03rd, 2008
This is clearly one of the posts I write that belong in the “personal” category (where it is). If you’re looking for nerdly goodness and don’t give a flying-fadoo about my personal life (and honestly, who really does?) then feel free to skip this post and just hang tight watching the RSS feeds for my next post on “liberating” wireless from pretty much any airport in North America. If you want to know what I’ve been up to for a week, well then, by all means keep reading!
Continue reading “I’ve been gone for a week, I need home for a rest”. Posted in
Personal with 4 comments 