During a recent ExpressionEngine site build, I found myself stuck for a few days trying to get cookies to work in Safari. Since actually logging in wasn’t particularly important to the site, I poked away at it a little bit here… a little bit there… but never actually solved it over the course of 3 days. A quick Google for the problem (EE forum search is darn near useless these days) brought me to Safari, cookies, and lost time from Fred of the fine folks at ngen works. So I fired out
echo date('c');
// I'll get you kids and your darn dog too!!!
And lo and behold, the server clock was off! A quick support email later, things are humming along tickity-boo, so I’m writing this partially as a “note to self”, and partially to add my voice to the stream of knowledge that is the web.
Preamble: I’m a huge fan of Alfred App. This post isn’t about Alfred per se, but if you’re a Mac user, do yourself a favour and grab a copy. There’s a free version, and the “powerpack”. The powerpack is what is needed to follow the rest of this post.
Recently I’ve been tackling a lot of projects where the state of the app when “logged in” was different then if you were “logged out”. In order to test the app in both phases, I spent a lot of time flipping between staying logged in, and also launching the site in private mode (or in Chrome, “Incognito”). To help speed up the process, I wrote a few extensions for Alfred to automatically launch my browsers in private mode.
The extensions support Firefox, Chrome, Safari and Opera.
Here’s what you’ll see now:
Grab the extensions and play around: alfred_private_mode_extensions.zip. Installing them is super easy, open Alfred’s preferences > extensions, and just drop them one at a time onto the “Drop to Install” box.
I mentioned on Twitter that I’m impressed so far with Firefox 4. Here’s a very minor, change I’ve noticed, that I’m a fan of; the treatment of javascript terminal dialogs.
The overlay makes it clear to the user that they need to interact with the alert box before they can use the page. Much nicer than the old style, where the page remained unaltered and the alert dropped from the top (at least on a Mac, I understand Windows versions appeared mid-screen).
There’s still some room for improvement here, and I don’t think this style of modal will (or even should) replace current solutions for modal windows, but I like how the Mozilla team is working to draw more attention to the box.
That said, I hope the Firefox team doesn’t give in to the inevitable cries from either the “we hate any and all change” camp, or the “now I want to use an image as the overlay and control the opacity” camp.
Remember years ago when you didn’t have Dropbox or Air Sharing and you relied on a trusty USB pen when you went somewhere and needed to physically pass files around? I do. Having spent almost 10 years doing training and going from office to office, computer to computer, it saved my life many times.
In 2007, I met one of the Mozilla guys at a conference (I think it was Benjamin Smedberg) and he gave me the last USB pen I ever owned.

I tucked it in my backpack, and that little guy has been everywhere with me, even causing momentary confusion in Germany when a customs agent pulled it out of my bag and excitedly showed it to me. At the time I thought I was about to get interrogated by a German Jack Bauer; turns out he just was a Firefox lover. It saved my butt once again late last week, when I was in a foreign computer lab with no internet access (wireless or otherwise). I’m sitting there with my laptop, needing to get files to another computer that’s hooked up to a projector, and drawing a blank. I momentarily contemplated burning a single file to a blank DVD, but then I remembered ol’faithful. So out it came, files got moved, and I tucked it away quickly into my pocket in case I needed it later.
...And then I did something stupid…
Firefox 3.6 was released today. I love it. Love it. One thing I wasn’t crazy about was a behaviour change when opening links in new tabs. Before 3.6, they opened at the end of the tab row, but now they open beside the tab you are currently on. Want to change it back?
- “about:config” in your address bar.
- search for “insertRelatedAfterCurrent”. The full config is “browser.tabs.insertRelatedAfterCurrent”.
- Set it to “false” (just click it until it toggles).
Enjoy!
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.

Or maybe… just maybe… the Firefox team has been plotting all along, and have actually taken over my site. Oh well, I can think of many worse things!
If you’re on Firefox 3, then type about:robots into your location bar.

Brilliant, funny, witty. Robots. What’s not to love? This is the second time Firefox 3 has impressed me with their wit. I also wrote about Beta software? Firefox “gets it” last year.
Since I gave some dap to IE for getting a developer toolkit embedded into Internet Explorer 8, I feel like I should also give kudos to Opera for releasing the top-secret and closely guarded Dragonfly. Opera annoyed the hell out of me at SxSW when they devoted an entire booth to promoting “Dragonfly”, but refused to tell me anything about it.
I’ve only had a quick look of it, but it does look like a pretty slick tool. The main problem I see for them here, is that they are fourth in the market (IE, Firefox, Safari, Opera) and fourth to get a developer toolkit. Its hard to work from a position of weakness like that. I hope they prove me wrong, since competition is always good for what we do, and I have to say, I’ve always had a soft spot for Opera.

If you have the chance to play, please leave comments with what you think of it! How does it compare to Firebug? How does it compare to IE?
Yes the web is awash with news of Internet Explorer 8. We’re like lemmings that way, it seems like every blog I read (116 says Google Reader) has some news of IE 8. Given the mad dash to the finish line for South by Southwest, I haven’t bothered to download or play yet, but I guess I’ll have to.
For me, the big news is that Internet Explorer 8 will have Firebug. Well, not technically firebug, but pretty much an exact clone. If you visit Microsoft Developer Tools and download their PDF, you’ll see that IE 8 will ship with a near exact clone of Firebug - which is great news if you’re trying to really push IE. I’m also happy that its being produced by the IE team, and not by a third party developer. The reason I’m happy is not because a third party dev couldn’t do an outstanding job (again, hat tip to Firebug), but because so much of the internals of IE is undocumented and secret, that I think the only people who could successfully implement this is the IE team.

If you look carefully, they actually got some really, really nice things in IE 8. For example, window.location.hash. This allows you to use javascript to redirect the user, but the page gets added to the cache and history. This allows the back button to work normally with “Ajax-ed” paged. Nice! There’s also a series of DOM-compliance bugs in there, and while it’ll mean little to me as jQuery shields me from the day to day trivia of that, it’ll mean a huge deal to jQuery itself (and other javascript libraries) and I bet we can expect a nice bump in speed due to native support for things that normally needed to be reconstructed (I’m looking at you CSS selectors and getAttribute/setAttribute).
The good folks over at Digital Web Magazine have more news in IE8 Beta 1 released!, including links to Jonathan Snook‘s smoketests. I’d like to extend my gratitude to the IE development team for its frank and open communication, particularly via the IE blog. While I’ve not dealt with them directly, all accounts are that they’re listening to the geeks.
Well, it seems official that Netscape is dead. I wish it meant more to me to read that, but Netscape lost relevance so very long ago. We all owe a great deal of gratitude to it however, for: pushing browser boundaries; making the “internet” relevant for a large number of people; keeping Microsoft honest; giving us Firefox.
I’ll always thinking back fondly of you Netscape, but I’ll try to remember you as you were… not not who you became.