, and discussed his personal history of using ExpressionEngine.
Watch or download Simon’s slides from Slideshare.
My EE History
- ExpressionEngine lets us meet wishlists from clients. As a tool it creates possibilities
- Background is from building static sites, then using Mambo and MovableType (“crap”)
- Moving to a dynamic, database-driven site for the first time is exciting
- Became a designer at Agenzia, using and hacking pMachine a lot
- Sold the use of EE 1.x for the Libertines website on the strength of the possibility for community interaction
- As EE was developed, the tools we needed started to come out in each release. EllisLab were listening
- Convinced Friends of ED to include ExpressionEngine in the Blog Standards Solutions book
- Agencies and individuals such as Solspace and Mark Huot started to use it as the backbone of their work
- Jamie Pittock launched the first EE fansite, Jambor-ee, and Mike Boyink’s Train-EE was providing tutorials. We started to have places other than the official forums where the community could share their knowledge
- The Frieze magazine project was a big test of EE; sixteen years of magazine archives, complex content models, and demonstrated the power of the Multiple Site Manager module
- EEInsider and Devot:ee appeared to share more community information
- Some add-ons become indispensable - Erskine need Playa and other commercial add-ons in their work
- When building a website, it’s wrong to be limited by the technology you use. With EE, we can design sites with an awareness that we can make it happen
- The ability to (re)design the admin interface ourselves is important
- We are building our own Ad Server module
- EllisLab hired Erskine Design to design and develop the demo site that will be included with 2.0
- The tools coming out in EE 2.0 are what we’ve been waiting for, but we need to spend time with 2.0 before we’ll be comfortable using it for client work
The future of ExpressionEngine
The future of EE should be to meet the needs of developers and clients. Simon covered the points he believes EE should consider as it grows past the 2.0 milestone.
- Adopt common developer methods
- Have robust first-party modules
- Provide on-going support for vital add-ons
- Enable development staging and delivery
- Provide Un-Simple Commerce!
- Reintroduce the Advisory Board
- We need more demos and better example sites
“The quiet revolution is over. If we work smart as a community, we’re in for a great ride.”
Leslie Camacho - Foundations: ExpressionEngine 2.0
- Categories:
- ExpressionEngine
- Tags:
- Published:
- 10:01am on Monday 26th October, 2009
Leslie Camacho, the President of EllisLab, described the journey to EE 2.0.
You can watch or download Leslie’s keynote presentation at Vimeo, and his slides can be found on Slideshare.
The Journey
- This week brings the cone of silence to an end, and sets the foundation for the next 5-6 years
- The original pMachine Pro site was built by Rick Ellis for Nancy Sinatra, and ran on PHP3
- The community that grew up around pMachine Pro was using it as a CMS, not as a blogging tool
- The EllisLab team all come from a freelance background; it’s very much a tool “by web developers, for web developers”
- ExpressionEngine has never been called a CMS internally; we call it a “web publishing platform”
- We underestimated the amount of work 2.0 would take; version 1.6.8 has 168,000+ lines of code and hundred of add-ons
- Some example sites running EE: Vodafone Mobile Clicks, SEED, A List Apart, BMI Music, Change.gov, Frieze magazine, Leiden University
- These aren’t websites, they are custom web applications. Our CMS needs to bridge with other solutions, tight integration is a necessity. EE is used as a framework
- Success for web developers means the ability to deliver custom web applications. The line between website and web application is disappearing
- Foundation > Features. EE 2.0’s foundation is that it is the best commercial CMS, proven in the market, and CodeIgniter is a highly-praised framework (Rasmus Lerdorf, inventor of PHP, says it is the best)
- So EE + CI = next generation web publishing
ExpressionEngine 2.0
- EE 2.0 has over 50 new features, a new UI, image editing and a file manager
- EE 2.1 will return to the normal EllisLab development cycle, and will be a performance/stability/security release
- Pricing: $149 non-commercial license, $299 commercial license, $50 to upgrade from 1.6.3+, and a $99 freelancer license for up to 5-man web shops to use on their own sites
- Also introducing corporate licensing and support
- 1.6.8 will be available to download with every 2.0 license
- Via a video clip of CTO Derek Jones: 2.0 will have custom fieldtypes, an iPhone control panel, and be released on December the 1st 2009
- An exclusive look at EE 2.0 will start on EEInsider on Monday 26th October
Q&A
Will modules in 2.0 just be able to make calls directly into the CodeIgniter API/modules?
(Derek Allard) Yes.
How much will Multiple Site Manager cost?
Haven’t yet decided for MSM. Corporate license will be expensive.
Oct 24
jQuery for the Control Panel Considered Harmful
- Categories:
- ExpressionEngine, JavaScript
- Tags:
- Published:
- 3:55pm on Saturday 24th October, 2009
Okay, it’s not actually harmful—in fact it’s rather awesome—but you’ll not get any blog traffic without a provocative title, right? What it can be is a pain-in-the-ass when working offline due to the default settings.
The jQuery for the Control Panel extension is not a first-party extension (it was created by the clever folks at nGen Works), but it does come bundled with ExpressionEngine and is invaluable (and often a requirement) for other add-ons. Unfortunately, the extension’s default settings are to load the jQuery library and UI from ’s centralised repository for JavaScript libraries; this means that if you don’t have a working internet connection—you’re working on the train or a plane, say, or trying to perform a live code demo at a tech conference with patchy wifi—you’ll get nothing but a spinning icon and no JavaScript.
Pros and Cons
Loading code from ’s servers obviously has some fantastic advantages. The response time is likely to be super-fast with 100% uptime; it’s a different domain to the rest of your site, so downloads can happen in parallel; and if the user has visited a different site using the same library they will have the file cached, speeding up your overall load speed.
But this is the Control Panel we’re talking about! Most of the benefits listed above are irrelevant, particularly if your CP admin team is a small one (indeed, for many sites it may just be one individual). And for development, where you may often be working offline, it can be crucial to have jQuery working properly in all environments.
Therefore I recommend that, when installing jQuery for the Control Panel, you also:
- Download the latest version of jQuery core and UI from the official jQuery website (zipped or not is up to you, depending on how often you find yourself stepping through JavaScript code at runtime)
- Change the Settings for the extension to point to your local files
If you are also using jQuery on your website front-end, you can even just point the extension to the front-end’s file (for example, mine lives at /j/jquery.js—save those extra characters where you can!)
Now you can work on the train, on a plane, or in a blackout—or run a live demo of ExpressionEngine while hundreds of geeks hose the wifi connection—safe in the knowledge that jQuery is always going to load when and where you want it. Just don’t forget to update it whenever a stable new version is released.
I believe EllisLab should consider bundling the latest version of jQuery within the .zip of EE (maybe in the cp_themes folder?) and default the extension settings to point to that file instead of .
Retain the distributed advantage
There are ways that you can host your own JavaScript library but still retain (most of) the advantages I mentioned above when using ’s repository. I can’t help you with ’s uptime (but what does that matter if your own site is down? All you need to worry about is your own uptime, really) but the other benefits are easy enough to duplicate.
- Serve your site assets—which might include images and stylesheets as well as your scripts—from a different subdomain on your own site, e.g. assets.example.com. It’s easy enough to configure your server to point the subdomain at the same location as the rest of the site, but you get the benefit of parallel downloads.
- Use Stephen Lewis’ SL_Combinator extension to minify, combine and zip your scripts (and stylesheets) for the front-end site. The result is one single, cacheable file for your users, and you can still refer directly to the jQuery library from the back-end.
Summary
I hope this helps you avoid the annoyances of interrupted work or embarrassing beachballing on stage if you’re trying to work with jQuery as part of the ExpressionEngine Control Panel. It’s a fantastic library and extension; if it were not for this one little issue it would be perfect.
Aug 22
How to update ExpressionEngine when your system folder is outside the web root
- Categories:
- ExpressionEngine
- Tags:
- Published:
- 9:14am on Saturday 22nd August, 2009
While they make it possible for you to move your main ExpressionEngine installation folder outside of the web root, EllisLab have neglected to allow for that possibility in their update scripts. This article shows you how to fix it with a couple of simple edits.
Given that there is even a blog entry on the EE site on the topic, you might have thought it would be accounted for in the version update script packaged with each new version. Unfortunately though the update instructions and the script itself ignore the possibility that you have moved your /system/ folder outside of the web root.
How to update EE, revised
First, ignore the instruction to copy system/update.php into your existing /system/ folder; instead, copy it into your web root folder (where your admin.php and path.php files are). It is now reachable at www.example.com/update.php - but it doesn’t work because the paths are wrong.
Editing update.php
Open update.php in your text editor. We are going to import the path information used by the rest of the site and update the paths needed for the update to run.
Add this line to the start of the file (beneath the copyright message):
require_once(’./path.php’);
Next, at the top of the file there are a series of definitions:
define(‘EXT’, ’.’.$path[‘extension’]);
define(‘PATH’, ’./’);
define(‘PATH_DB’, ’./db/’);
define(‘PATH_CORE’, ’./core/’);
define(‘PATH_LANG’, ’./language/’);
define(‘PATH_MOD’, ’./modules/’);
define(‘PATH_EXT’, ’./extensions/’);
define(‘PATH_PI’, ’./plugins/’);
define(‘CONFIG_FILE’, ‘config’.EXT);
Let’s update them to use the correct path information: