Greg Aker


Be a part of the solution

Filed in: Blobbing, ExpressionEngine

January 9, 2012

Ah, it's winter. (side note: I seriously need to get the winter theme up and going on my site.) It's that time of year where the ExpressionEngine user-base starts to get restless. Oh, who am I kidding, it can happen at any time of year. So a recent comment on Kenny's article over at The Nerdary got me thinking, and I decided to dust off my long ignored blog.

I don't think users of ExpressionEngine have any clue what it's like to be a developer at EllisLab, what it entails, or what the fuck they ...

Read More

Simple Desktops for the Mac!

Filed in: Announcements, Blobbing, Django

September 7, 2011

I'm completely stoked that the Simple Desktops app for the Mac is now available in the App Store. I took over the reigns of site development from Kenny Meyers in early 2011. Since then, Tom Watson and I have been trucking along making a lot of small tweaks leading up to this app.

Simple Desktops

I introduced Tom to Justin Voss who by day is a Java Programmer at a very large Enterprise here in Columbia, MO, but by night is an amazing Cocoa and Django developer. The collaboration on this was a ball. Tom had the vision, Justin made it ...

Read More

Know what ORMs and Query Builders do!

Filed in: Django, ExpressionEngine, CodeIgniter

September 2, 2011

ORMs and Query Builders such as the Django ORM and CodeIgniter Active Record classes are great time savers. But you can get yourself into performance trouble if you're not paying attention to what these are doing behind the scenes. I think the biggest mistake people make is they use tools like this as crutches for not understanding how to write simple SQL statements. Don't fall into this group! If you're in it, work hard to get out!

I'll show a couple of examples from both to illustrate how you can give your applications a performance boost ...

Read More

Bust 'yo cache!

Filed in: Blobbing, web-dev

August 31, 2011

If you're using a CDN such as the one we have setup at EngineHosting, it is possible that your cache will get "stale" since the nodes will hold on to your static assets for as long as the expires headers you send tell them to. There are a couple of different methods we can employ to ensure when you push a new build of your site, the CDN will always come back to your origin servers and get the right versions of files.

I've been over this before, but a real key to success here is managing your ...

Read More

Testing Django views that rely on session variables.

Filed in: Django

August 29, 2011

I'm working on a Django project where I rely on some session variables for logged in users in the templates. Being relatively inexperienced unit testing Django views, but wanting to become a bad-ass, I was having a tough time figuring out how to get session variables working in my test methods.

The basic test class looked like:

from django.core.urlresolvers import reverse
from django.test import Client, TestCase
from myapp.models import Blog

class BlogAdminTestCase(TestCase):

    def setUp(self):
        self.client = Client()

        s = self.client.session
        s['the_answer_to_life_and_everything'] = 42

    # Actual Tests Here...

However, every time I ...

Read More

CodeIgniter Conference 2011 Roundup

Filed in: Blobbing, CodeIgniter

August 22, 2011

It's 3:30am, and I'm waiting to take a car to the airport after my weekend in New York for the CICon 2011 Conference. To help trick my body into not wanting to sleep, I decided to do a write up about my weekend experiences.

First, hats off to Adam Fairholm, Kenny Katzgrau and Phil Sturgeon with the the great job they did organizing the conference. I'm extremely pleased and impressed with the amazing venue, accommodations, speakers and overall experience they provided for us.

I was honored to announce to the community two things I think are ...

Read More

var_dump($this) in EE/CI with no recursion

Filed in: PHP, ExpressionEngine, CodeIgniter

August 18, 2011

Here's a quick little tip for all you EE addon developers out there. I've seen some people moaning on Twitter about how a var_dump() can be hard on the browser due to the recursion in the CodeIgniter singleton. So check how I like to roll in my CI libraries/EE addons.


class Foo {

    protected $_foo;

    public function __construct()
        $this->_foo = $this->config->item('something');

Look maw, no $this->CI

Did you know you you can do this in a CodeIgniter library or an ExpressionEngine mcp/mod/extension/plugin/accessory file? It's pretty easy to accomplish, and ...

Read More

Ch-ch-ch changes

Filed in: Blobbing

August 3, 2011

Professionally, I consider myself one of the luckiest people on the planet.  I started learning HTML/CSS and ExpressionEngine when I was 27, learning PHP at 28, and had the honor of joining the ExpressionEngine dev team at 29.  I spent hour after hour studying and trying to get better, and continue to do so.  With my background in music, I try to approach a programming task in a similar fashion to learning a new tune.  I got an extremely late start in this industry, considering someone like Pascal started programming before he was 10.  My approach is that the ...

Read More

Showing PHP Memory Usage through your Template

Filed in: Performance, PHP, ExpressionEngine

June 18, 2011

Ever been deep in troubleshooting performance issues in your ExpressionEngine site and wondered what kind of memory is a certain plugin/weblog tag, etc is taking up? Unless you're holding out from blogging about it, there's absolutely no way I'm aware of that you're getting that info from shell on the server. So, here's a quick and dirty hack to EE's template parser that will show you this info.

Pop open system/expressionengine/libraries/Template.php and look for:


function log_item($str)

Now, a quick addition in there and you're good to ...

Read More

Session Cache in ExpressionEngine

Filed in: PHP, ExpressionEngine, tutorial

June 14, 2011

I think the session cache may quite possibly be one of the more under used tools in the third-party ExpressionEngine developers toolbox. The speed/performance increases from strategically caching items in this can be substantial. As with anything you do while developing your addon, benchmarking needs to be done every step of the way to ensure you aren't overdoing it and actually causing issues. I want to illustrate how adding something to the session cache can give a nice performance boost.

What is the session cache?

First, see the docs.

If you're a developer and haven't had ...

Read More