DerekAllard.com

Launching your browsers in Private Mode with Alfred 2

Alfred AppPreamble: 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.

Years ago I wrote Launching your browsers in Private Mode with Alfred as a quick little Alfred extension. I was recently asked if I’d updated the extension for Alfred 2. Sadly, I had not, but a quick search showed that someone else had already done the grunt work on the Alfred forums, which I’ve backed up here (you may need to right-click ‘save link as’) to ensure the workflow will always be available.

 

 

Bamboo Invoice is no longer actively maintained

Thank you Bamboo Invoice users for a wonderful 7 year run. It is with mixed emotions that I write this, but the BambooInvoice project is no longer actively maintained.
-Derek

Bamboo began as a "scratch my own itch" side project. It was 2006, and I was an independent freelance PHP developer. Ruby on Rails was getting a lot of attention, and "frameworks" were only just starting to work their way into the collective PHP consciousness. Like many developers, I began exploring the (relatively few) options for PHP frameworks. Having finally settled on CodeIgniter, I set to build something with it as a way of running it through its paces. Thus, with a need to keep better track of my client invoices, and an urge to experiment, BambooInvoice was born.

That lead to wonderful opportunities for me, including a substantive run with CodeIgniter's parent company, EllisLab. I was blessed to work every day with a passionate community to build CodeIgniter into something I was very proud of in those early days. As the years went on, the owners of CodeIgniter and some of its development community drifted. I would count myself among them. These days most of my time is spe. While I still immensely respect the framework and community, the license change and architectural choices in CI 2.0 are difficult to reconcile against my current beliefs and goals, and after a great deal of time considering the best move for me and this project, I've decided to stop personally developing it.

Twitter Bootstrap documentation quote of the day

From Bootstraps button documentation:

IE9 doesn’t crop background gradients on rounded corners, so we remove it. Related, IE9 jankifies disabled button elements, rendering text gray with a nasty text-shadow that we cannot fix.

It is my educated opinion that everybody should strive to write documentation like this.

Handy Alfred workflow - Dev Doctor

My favourite little Mac launcher (and all around handy butler) Alfred recently graduated to version 2. I haven’t played around with it much, but this morning came across We make awsome sh.it’s handy developer workflow, Dev Doctor. Its just a smart search tool, but its contextually aware, and allows for quick function lookups.

Alfred Dev Doctor

Since Alfred is already part of my day to day workflow, I find the Dev Doctor much handier then running the manual search.

Know of any other handy Alfred workflows? Please let me know!

Understand the Favicon

Jonathan T. Neal has written what is probably the single greatest discussion around the topic of favicons I’ve ever read with Understand the Favicon.

The favicon on DerekAllard.com

The level of research is wonderful, including breakdowns of browser weaknesses and quirks (still looking at your Internet Explorer). Of particular note is how different browsers handle pages that offer both png and ico formatted favicons, including this gem:

Opera, not wanting to take sides, will choose from any of the available icons at complete random. I love that Opera does this.

A highly informative read.

While we’re talking about favicons, I recently used the wonderful “Tinycon” library from Tom Moor, and was really happy with the results. Check it out if you need a small library for manipulating the favicon.

How To Survive A Robot Uprising (aka Robopocalypse)

The folks at Epipheo Studios have given us all a wonder gift. Their video How To Survive A Robot Uprising (aka Robopocalypse) is a clever, fun, and informative look how how to spot, and defend yourself against killer robots (spoiler: look for red glowing eyes!).

How To Survive A Robot Uprising (aka Robopocalypse)

 

New site design - The Robot Invasion Continues!

Over the last few weeks (months) I rebuilt DerekAllard.com with a new look/feel. Still a few rough edges here and there (if you see anything, please contact me) but I wanted to push it out now :)

DerekAllard.com version 3

Member Banning ExpressionEngine snippet

When spammers do sneak comments through my blog, I have a very simple one click* snippet to ban them similar to the way the EE forum’s “ban member” option works. Essentially, beside every comment, I have a “delete & ban” link. This saves me needing to fire up my control panel, and navigate to the proper place. It just saves a bit of clicking around.

I never thought much of it, but yesterday it co-incidentally came up when I showed another EE dev my site’s control panel for something totally unrelated. Since I implement the “one click delete” in a snippet, I thought I’d share it here:

{if can_moderate_comment}
     [ 
<a href="{cp_url}?S=0&D=cp&C=addons_modules&M=show_module_cp&module=comment&method=index&entry_id={entry_id}">delete &ampban</a]
{
/if} 

And then in my template

{exp:comment:entries}

    
<p>{url_as_author} wrote{ban_member_snippet}</p>

    
{comment}

{
/exp:comment:entries} 

I’ve used this sucker for so long I forgot all about it. If you have any “go to” snippets, code or tricks, please post them in the comments here!

* Technically its probably 2 or 3 clicks :)

{Less} CSS3 mixins and vendor prefixes

I doubt {Less} is much of a revenlation revelation to anyone nerdy enough to be reading my site, so I’ll skip the usual platitudes and jump right into why I’m writing this.

As part of a recent site build, I’ve been relying heavily on CSS3 features, many of which are only partially implemented across the browsers. Not a big deal for me, it just means a lot of vendor prefixes:

#someElement {
    
-webkit-transitionall .5s;
       -
moz-transitionall .5s;
         -
o-transitionall .5s;
            
transitionall .5s;

But I have a few problems with this (CSS validation and older Internet Explorer are not among them). Firstly, its a pain to need to add that 4 lines every time, and secondly, one day I’ll want to remove some or all of the vendor prefixes and I’ll need to do it a bunch of times.

As a devoted {Less} user, the answer seemed obvious at first, I’ll just throw in a mixin to reduce it down into one simple line.

#someElement {
    
.transition(all.5s);

I’m hardly the first person to come up with this idea, but looking around for other .less files that handled vendor prefixes the way I wanted, with all the CSS3 items I wanted, was challenging. So I cobbled together my own file.

You can grab it off Github if that’s your sort of thing LESSCSS mixins file of vendor prefixes for CSS3.

Safari, cookies, and lost time - the remix

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.