Published by Mijingo

All entries filed under “Life as a Web Professional”

Work for Vector Media Group

I don’t post about many job openings, but sometimes I just have to share because of the opportunity. This is one of those times.

Today Matt Weinberg announced on Twitter that Vector Media Group is hiring a full time web developer to work in their New York City office.

The team at Vector Media Group is already 10 people strong and they work with great clients and, yes, ExpressionEngine and CodeIgniter.

A week in this role will require many skills: on Monday you might be turning PSDs into HTML, while on Tuesday you might be setting up templates and fields in a project’s CMS.

Our office is in the Union Square area of Manhattan. You’d be working in our office 5 days a week but we’re flexible with hours. The important thing is getting your work done and having some fun.

They offer benefits, including free lunch every day. And knowing Matt I bet the lunches are damn good.

Does this sound like a good fit for you? Read the entire job posting and get in touch with them.

Posted on May 10, 2012 by Ryan Irelan

Filed Under: Life as a Web Professional

We’ve Always Modeled Content

“We’ve always modeled content.”

That was the first thing I said to myself after reading the A List Apart article Content Modelling: A Master Skill by Rachel Lovinger.

Rachel details the idea and work behind breaking website content and pages into different data buckets (in our case this would be Channel Custom Fields and Channels). Content modelling is important because we need make sure the people managing the website have the control they need over the content. Does that sidebar paragraph about the site need to be edited on occasion? Make sure you store it in a way that the website team can update it.

As people who develop with and on ExpressionEngine, content modelling seems obvious to us. This is what we’ve always done. It is an important part of being a competent web developer. It is not something that we should just leave to someone else to do.

To demonstrate this, read through this article by Justin Reynolds on content modelling with ExpressionEngine.

If you’re going to model content effectively you need a content management system that makes it as painless as possible to organise information into well defined data containers. I thought I’d take a moment to outline why I think ExpressionEngine by EllisLabs (sic) does this so well. It’s the primary reason I use it as my standard content management solution for larger websites. The system was designed from the ground up with flexible content modelling in mind: it makes it very straightforward to define ‘channels’ of infomation built of any type of data that can be displayed on a website: single lines of text, body copy, images, multimedia files, PDFs and other downloadable files, dates, categories - and so on. I’ll stress from the outset that I’m sure there are other systems that also handle content modelling well - it’s just that I like the way ExpressionEngine does it.

Hacking the Core

Whether it was a homegrown hack or one we found somewhere to work around a limitation or bug in ExpressionEngine, we’ve all done it at some point. The thing with hacking the EE core files is this: if you hack it, you own it.

You own the responsibility for letting those that come after you know about the hack. If it’s your site or one you will always maintain (unlikely), then you own the responsibility to always re-patch the core files with your hack when upgrading to a newer version of ExpressionEngine.

Rob Sanchez had a good response and technique for making upgrading site with hacks a little easier (this is only applicable to people who use Git or other version control system):

If you hack the core EE files, where do you document those changes so developers that come after you can know about them?

Posted on Apr 30, 2012 by Ryan Irelan

Filed Under: Development Tools, Life as a Web Professional

EU Cookie Legislation and ExpressionEngine

In 80 days the new EU legislation on web browser cookies grace period will end in the UK. As of May 26, 2012 “if you are not compliant or visibly working towards compliance, you run the risk of enforcement action, which can include a fine of up to half a million pounds for a serious breach.” (via EU Cookie Law Explained)

In short, you need to get consent from your website visitors to store cookies on their computer. From The Cookie Collective:

It has been designed to protect online privacy, by making consumers aware of how information about them is collected by websites, and enable them to choose whether or not they want to allow it to take place.

It started as an EU Directive that was adopted by all EU countries on May 26th 2011. At the same time the UK updated its Privacy and Electronic Communications Regulations, which brought the EU Directive it into UK law.

Each EU member state has done or is doing the same thing. Although they all have their own approach and interpretation, the basic requirements of the directive remain the same.

EE developer Andy Marshall (you might know him as “moogaloo”) wrote about this on his blog and the implications it has for users of ExpressionEngine.

The law requires all non-essential cookies not be dropped until the user explicitly opts in. The definition of non-essential seems pretty vague - some people see eCommerce cart cookies as essential and therefore exempt from the laws, but I’m not sure if that’s been categorically confirmed. And what about ones that are hard coded into a CMS that, whilst largely benign, would be hard to argue are essential to the site’s functionality.

ExpressionEngine - our CMS of choice - for example uses 3 cookies to track a users recent activity, last visit and general site movements. None of these record a person’s email, name or other identifiable details, merely their browser session on your site, but are all non-essential to the site.

I do not live in the EU and I am not an expert on this law but it seems like is a lot of gray area here in how the law requirements are interpreted.

So, what is going to happen to sites running ExpressionEngine? I don’t know but hopefully everyone will be able to comply before the May deadline. In another blog post today, Andy Marshall again covers the topic of the legislation and EE. He wonders what EllisLab is doing about it (if anything).

The problem is, ExpressionEngine uses 3 cookies by default and they can’t be turned off. They don’t do anything that concerns me, but the fact they can’t be removed from the core EE installation does. By using an ExpressionEngine site, I am now making a site uncompliant with a very real law that will require sites to run without non-essential cookies.

Andy called on EllisLab to address this problem. In the comments Steven Grant linked to a EE support thread that shows that EllisLab is aware of the problem and, as of the last update in January, plan to work on the issue and address it so everyone who in affected by the EU leglisation can comply. Robin Sowell, a software engineer at EllisLab replied:

We’ve reached the discussion stage on it- it was already on our radar. We haven’t started coding on it, and our plans aren’t currently firmed up, but we do know the deadline is looming. But yes- we do intend to give our users a way to comply with the cookie requirement. At least on the frontend, EE will need to be able to run cookie free, and I’m thinking some posts on different ways to honor the requirement will likely be needed as well. And yes- right now, there’s no way to totally disable cookie setting.

Hopefully in the next 80 days we’ll have more updates about the progress EllisLab is making on making the frontend of EE cookie free.

How You’re Publishing with ExpressionEngine

Here are the results of the poll I put up earlier this month. The idea behind the poll was to find out how many people are publishing with third party tools and how many just stick with the Control Panel.

The response rate was lower than what I had hoped for but the data still gives a glimpse at how people are publishing content to their ExpressionEngine sites.

The Results

I suspected that the majority publish their sites via the EE Control Panel and not with third party publishing tools like MarsEdit, Ecto, Textmate or even iExpression. My suspicions were proven true with the results.

As you can see, some do use external tools to publish content but their lack of support for mimicking the Control Panel publishing interface is surely whey they’re not more widely adopted. Additionally, with the introduction of customized publish layouts (no matter how fragile they still might be, 2 years later), developers and users of ExpressionEngine can now tailor their publish forms to be exactly what they need to them to be and therefore the entire Control Panel experience becomes more useful. This, perhaps, diminishes the need for another editor.

The biggest reason, of course, is that the web browser is cross platform. I can post content to my site from any computer or device with a web browser. Ultimately, this is the most flexible solution (and the most realistic if you’re building sites for clients).

However, the EE Control Panel still fails miserably on mobile devices (maybe one day EllisLab will create a responsive theme by default; until then, check out this one by Ben Croker) If you really need to post to your site from your iPhone, you should also check out iExpression, a native iOS app that lets you publish content to EE. For what it’s worth, the Control Panel works okay on the iPad if you just need to jump in for a quick tweak or edit. Anything beyond that will probably result in furstration.

Operating System

I asked for the primary operating system just to use it as a data point to measure the other results (like the use of MarsEdit, an OS X only application). Surprisingly, the usage of OS X among the respondants was almost 80% while the use of MarsEdit (any use at all in the past) was only 5%. That means even Mac users, despite such a great app like MarsEdit, are still favoring the Control Panel. That was surprising to me.

Why only the Control Panel?

The last question I asked in the survey was why the respondent preferred the Control Panel over other methods of publishing. I got a lot of responses that said they didn’t know about other offerings. Some felt that the Control Panel was the “easiest way” and “good enough.”

It’s readily available once EE is installed, and doesn’t require any extra configuration/development. It’s also the most “guaranteed to work” way to post content.

The ability of external editors to support fieldtypes also came up, like this one:

Full fieldtype support. No external editor supports fieldtypes like Matrix, Assets, Playa, etc.

and this one:

Why not? It’s a good overall experience with all the custom fieldtypes, publish page configurations, entry revisioning, etc. Keeping to just the Control Panel means I can jump on any system anywhere to post/edit content. Hooking up external sources is just another cost/hassle to install & keep up with as both platforms evolve.

This response addressed another tool I use but didn’t mention in the poll:

I actually use the control panel, but use QuickCursor to send any long content bits to my editor-of-choice, in this case MacVim. The reason I use the control panel is that in my experiences with other methods, it wasn’t always easy to get all the custom bits working properly when you go beyond just a simple blog. And now that I’m using the Structure plugin, I don’t think an external editor would be of much use to me at all.

I love QuickCursor and use it whenever I have to write something of length (like a message in Basecamp) in the web browser.

With publish layouts and Zoo Admin, I can quickly make a user-friendly workflow that’s easy to maintain.

I’ve used Zoo Admin and it is indeed a nice way to customize the CP for those who will be maintaining the site.

That was only a sampling of all of the responses but the general trend was that either people didn’t know about external editors or those that did thought it was just too much of hassle (or tradeoff ) to set one up. A few people even suggested I further cover external editors and how to use them. That sounds like a great idea, so look for something in the near future.

Thanks to everyone who participated in the survey!

Eric Lamb on Charging Hourly

In a post on his blog, EE add-on developer Eric Lamb (you might know him by his handle “mithra62”) shared his thoughts on charging hourly for web development projects instead of a fixed price bid.

He sets it up like this:

If you don’t know, the traditional way of pricing out a web development project (at least in my experience) is for a client to contact an agency (or freelancer), tell them what they want and the agency telling the client how much it’ll cost at a flat rate. There’s usually a back and forth over cost and features, time and expense, and shaving features accordingly to meet some predetermined budget, and there’s certainly a lot of minutia in between the parts, but those are the broad strokes (again, in my experience).

I was surprised that people still do fixed pricing on web design and development projects. There are so many variables, information and requirements to gather, scope creep to consider and other mysteries that it is seems impossible to know what the project will cost before work begins. Business requirements change, phone calls add up (you do charge for your time on the phone, right?), stakeholders share their ideas and wishes for the project…the list goes on.

Eric has some good advice in his blog post) if you are in the situation of stil charging fixed prices for projects. I thought the retainer idea was an interesting one:

When I find a new client who’s willing to pay hourly (with a couple exceptions) the first thing I do is get a retainer. The retainer basically gives me the confidence in the client to be able to pay my rate, as well as giving me motivation to start work with the confidence of continued payment.

My approach would be to do hourly billing but give the client an idea of where those hours would be spent (various phases of the project) and estimate how many they would be. This way they can see what the project could cost but know that the dollar amount is tied to you working a fixed number of hours, not you delivering a completed website to them chock full of their whims and fancies.

From what I’ve read elsewhere online, this is how a lot of people also work. Hence my surprise.

Here’s one way to think about it: website design and development isn’t a product. Don’t treat it or price it like one. You’re in client services, which means you are paid for your time and expertise require to build the website, not just for the thing you deliver.

Posted on Feb 17, 2012 by Ryan Irelan

Filed Under: Life as a Web Professional

SXSW ExpressionEngine Party

Last week I was in Philadelphia and was so preoccupied with a large project that things were slow around here. Because of that I neglected to post about the ExpressionEngine party at SXSW Interactive this year.

Fortunately, it’s going to be fun and sponsored by a bunch of great EE community companies (like my very own Mijingo). Unfortunately, the attendance list has already reached capacity. There might be a chance that they open it up again so stay tuned to We Are Paper Tiger twitter feed for announcements and be sure to add your name to the waitlist.

See you at SXSW in March!

Posted on Feb 12, 2012 by Ryan Irelan

Filed Under: Conferences, Life as a Web Professional, Meetups

New EE Magazine

Thomas Boelskifte, the person behind the Nordic ExpressionEngine Users website that I posted about a couple of weeks ago created and released a free magazine called exp:magazine.

In his announcement blog post, Thomas explained his idea behind the magazine and what his plans are. He’s also looking for help writing articles to put in the magazine.

The first issue is available now as a free download and it contains content from the Nordic EE Users website to get started. Thomas hopes the community will submit articles for future issues.

Sounds like a great intiative and good luck, Thomas!

Posted on Jan 29, 2012 by Ryan Irelan

Filed Under: Life as a Web Professional

Gentle Manners, Hard Work

For the last few days I’ve kept returning to the Corporate Culture statement at Ogilvy & Mather (yes, that Ogilvy). There is, of course, a lot of common sense information in there for businesses of any size. But there’s also some in there that applies to how we should handle ourselves, treat others and generally act in a community.

My favorite section is “What We Admire in People.” Here are the first two paragraphs:

We admire people who speak their minds. At the same time we admire people who listen more than they talk, and make a real effort to understand views that differ from their own. Candor is a virtue; arrogance is not.

We admire people who work hard, who are objective and thorough. Lazy and superficial men and women do not produce superior work.

This goes as much for an advertising agency as it does for an online community of web designers and developers. Especially the part about candor and arrogance.

Read the entire Corporate Culture document at the Ogilvy & Mather website.

Posted on Jan 29, 2012 by Ryan Irelan

Filed Under: Life as a Web Professional

2 New Train-ee Classes Announced

This week Mike Boyink of Train-ee announced two new training classes that will take place in March in the great state of Texas.

Both the Beginner to Intermediate Training class and the Add-on Development Class will take place in San Antonio, Texas the week of March 21, 2012.

The main EE class will be taught by Mike and the add-on development class taught by Erik Reagan of Focus Lab.

Posted on Jan 26, 2012 by Ryan Irelan

Filed Under: Life as a Web Professional, Training

Nordic EE Site

I came across the Nordic ExpressionEngine Users site through their review of my MySQL and ExpressionEngine video. It’s a very specific site for scandinavian EE developers.

We love ExpressionEngine, and were encouraged by many people, to do a site where developers and customers in Scandinavia could find each other.

Very cool.

Posted on Jan 19, 2012 by Ryan Irelan

Filed Under: Development Tools, Life as a Web Professional

EE Podcast Wants Your First EE Site Story

Lea and Emily at the EE Podcast are collecting stories about your first ExpressionEngine website. From a tweet:

What was your first #eecms site? How did you get into EE? What did you learn? We want to hear your stories! Email feedback@ee-podcast.com

Back in July, I wrote about my first ExpressionEngine site, the mistakes I made and how I didn’t really understand how EE worked so I underutilized it. I’m sure my experience wasn’t any different than a lot of people, but what’s your story? Write it up and send it to Lea and Emily.

Posted on Jan 05, 2012 by Ryan Irelan

Filed Under: Life as a Web Professional

Boyink on Failed Projects

Mike Boyink explored on the consequences and challenges of taking on a “failed project.” This isn’t a project that you take on and somehow it doesn’t work out. This is picking up the scraps of someone else’s failed project and fixing it. That, in two words, is tough work.

Mike says he receives a lot of emails asking for help on failed projects:

Over the years I’ve responded differently, from simple one-line “no thanks” to more involved responses declining the work. I thought I’d write up a more detailed blog post both to record my thought process in responding and as way to have a link to send out in the future when these requests come in.

Lots of great advice in the article, especially about increased costs. I’d recommend you charge a higher hourly (or project) rate for these types of projects simply because they’re riskier and, as Mike points out, more difficult to assess.

Read Mike’s entire article: Taking On a Failed Project

Posted on Jan 02, 2012 by Ryan Irelan

Filed Under: Life as a Web Professional

An Event Apart Talk Notes

Tomorrow, the final An Event Apart of the year wraps up and leaves behind some amazing talks. I attended the conference in October in Washington, D.C. and, as expected, I was treated to some passionate individuals sharing great information.

If you haven’t attended the conference this year, one of the best places to go for conference talk notes is Luke Wroblewski’s website. Luke speaks at many AEAs and takes compact, thoughtful (and bullet-listed) notes on the other talks.

In his archives, you can see all of the AEA notes he’s written. Go through, find your favorite topics and then read through the notes.

Posted on Dec 13, 2011 by Ryan Irelan

Filed Under: Conferences, Design, Life as a Web Professional

Pixel & Tonic is Hiring

Our friends (and long time advertiser on the site) Pixel & Tonic are hiring a PHP Developer on a contract-to-hire basis. Do you love their add-ons and want to help make them better? Well, time to spit shine your resume and apply for the position.

Pixel & Tonic is looking for PHP developer who’s a diehard fan of ExpressionEngine and CodeIgniter to help us develop and support our ExpressionEngine add-ons.

Make sure you have great PHP chops and experience developing for EE. Is that you? Apply for the job.

Posted on Dec 02, 2011 by Ryan Irelan

Filed Under: Life as a Web Professional