Preparing CMS Web Graphics Using Open Source Tools
- Details
- Posted: January 14, 2010
My video is now available at Lynda.com. Check out this free clip at YouTube!
Why are web professionals SO expensive?
- Details
- Posted: January 01, 2010
What's your rate? Everyone asks that question. The typical going rate for a web developer in my area -- the professionals, the ones who make their living doing this stuff -- generally ranges from $70 to $125 per hour, depending on skillset. Most seem to lie in the $75 to $100/hr range.
WOW, you say. WOW is that expensive! Perhaps even excessive! Man, you must live the lifestyle of the rich and famous. You must never worry about money. You're too expensive to hire. I know this guy, the son of the nephew of a friend of a cousin, who only charges $30 per hour for the same work. Why do you charge so much???
For a moment, consider what you make at your job, where you are an employee of an organization of some kind. Let's say it pays $50,000 per year. That's a little higher than average in my area of the country, and this would generally be considered a "good job" and worth staying in.
In addition to that $50,000/yr, you probably have some combination of:
- Paid sick days, professional days, vacation days, and/or personal days, typically 10-15 days per year.
- Paid holidays, typically 8-10 per year.
- Health insurance for yourself. Including your family may be subsidized by your employer, or you may have to bear the full cost yourself. You contribute something to this cost as a payroll deduction, but it's typically not more than $100 per month. This health plan frequently includes prescription drug benefits, a small fee for a doctor's visit, and a lower deductible per year (seldom more than $2000).
- Disability insurance, both short and long term. There's typically no payroll deduction for this.
- Life insurance, at least a small amount (frequently $10,000-$50,000). There's typically no payroll deduction for this.
- A pension, or at least the opportunity to contribute to a 401(k). Sometimes the employer matches contributions to a certain point. You are charged no fees for the 401(k).
- Dental insurance, which may not be as subsidized as the health insurance. You contribute something through payroll, typically.
- You get a regular paycheck, every single pay period. You know exactly what you will be paid.
- You get raises, at least occasionally.
- You also probably work a 40 hour week, although you may occasionally put in the odd 50 hour week if you're a salaried employee. You typically work Monday through Friday, with the weekends free to do what you want. Or you may work an oddball weekend now and then, but not often.
- If you travel for your job, your travel expenses are completely covered, including airline fare, hotel, rental car, mileage, and $35/day per diem for meals.
- Occasional other benefits: the odd pizza lunch at work, bagels/donuts some mornings, free snacks, holiday parties, and so forth.
A freelancer is someone who works for themselves. They typically carry no employees. In the computer world, many work at home in a spare bedroom or the basement. With a computer, a fax machine, a reliable broadband Internet connection, and at least one phone (either a cell phone or a cell phone and a landline), you can run your web development business right from the house, keeping your expenses relatively low.
Employees at companies look enviously at the freelancer. They work from home! They work in their pajamas and bunny slippers! They're home when the kids are home from school! They can take a few hours off here and there without asking the big boss! AND they're making $75/hr!
But do consider the following:
- There are no paid sick days, professional days, vacation days, and/or personal days. If you don't work, you don't get paid.
- There are no paid holidays. If you don't work, you don't get paid.
- There's no health insurance unless you buy it. If you go to the individual market, your rate is determined by your health history. If you are able to go with a group plan via the Chamber of Commerce -- something illegal in New Hampshire, by the way -- you may be able to get a lower rate. However, you'll still bear the full cost of insurance plus all deductibles and co-pays. Due to the high cost, you may get a $5000 or $10,000 deductible plan and cross your fingers. Really, health insurance is good only if you're hit by a bus (or a logging truck). You'll probably pay full price for a trip to the doctor.
- You will pay for your disability insurance. If you work from home, it's very hard to get, if you can get it at all. If you can get it, it's very expensive.
- You'll pay for your life insurance.
- There's no pension or 401(k). You can save via Roth IRA, SEP IRA, or SIMPLE IRA, typically. You'll pay a fee to the company managing your retirement assets in some form or another. Unless you're very disciplined, it's very hard to save for retirement. Remember that no one is putting money away for you.
- You're kidding about dental insurance, right?
- Regular paycheck? Nope. Some months you're rolling in it, and some months there's nothing. Sometimes those nothing months are back to back. Financial management skills are absolutely critical, as is an emergency fund. Some months you pull from savings, while other months you can contribute.
- Raises? Unlikely, unless you raise your rate (and listen to the complaining that goes with it).
- A 40 hour week would be a blessing, as would no weekend work. I am fond of saying I work an 80 hour week, but at least I get to pick which hours I work. Working at night and on the weekends is standard.
- If you travel for your job, you bear the full cost of all travel expenses.
- Occasional other benefits: getting up at 9 AM, going to the grocery store in the middle of the day instead of at 5 PM, taking a nap in the middle of the day.
- A real downside to working at home: for some, the perpetual call of the refrigerator, laundry, housework, and other distractions. If the kids have the day off from school, you're guaranteed to not get much done that day. For others, working at home means that vacation isn't ever spent at home, where work could easily suck you back in quickly.
By the way, in regards to the 80 hour workweek, that is not 80 hours at $75/hr. It's typically more like 20 hours are billable. The other 60 unbillable, free hours are spent in the following ways:
- Talking to potential clients, putting together proposals, and generally looking for your next job
- Checking in with current clients to find out how they're doing (hoping they will hire you to do something else)
- Staying up with recent trends in your field (deciding what to learn so you can find more work)
- Networking with offline and online friends (looking for work)
- Blogging and establishing your expertise in your profession (so people will find you when they need some work done)
- Creating invoices (so you can get paid)
- Chasing down clients and begging them to pay you (so you can pay your bills)
I'm entering my 10th year of working as a web developer, building websites to put food on the table and keep a roof over my head. I absolutely, totally, completely love my job. I love my lifestyle. I love the fact that what I do determines whether I sink or swim. I love not having anyone to report to. (No one is a tougher boss than I am to myself.)
Would I recommend my lifestyle to everyone? No way! Some people want that regular paycheck, and there is absolutely nothing wrong with that. Other people want the benefits that come with a "real" job.
Please don't give your web developer a hard time about their rate. Remember all of the expenses that go with providing their own benefits. Remember all of the unbilled time that gets worked. And while working at home seems totally fabulous, there are real downsides. I have yet to meet a rich web developer, but I've met many, many happy web developers.
Using the menu alias function in Joomla
- Details
- Posted: December 09, 2009
Sometimes you want to create more than one link to a given item in your Joomla site. Let's say you have an article that you want to show up as subnavigation under Item A and Item B on your menu.
You could create two identical articles, linking one to Item A and the other to Item B. We used to do that in the static HTML days. Unfortunately, that generally meant that you had a maintenance nightmare, since when the page's content changed, you had to change it in two places.
With Joomla, you could create two links, one from Item A and the other from Item B, to the same piece of content. This works, but now you have two different URLs for the same page. That can lose you points in search engines.
The Joomla Alias comes to the rescue. Aliases appear all over Joomla, mostly an alias field for some type of title (article, section, category, menu, etc). However, this particular alias is a type of menu link. To do this:
1. Create the original menu link to the piece of content as you normally would.
2. When you're ready to create the alias, click the New button in the Menu Manager for the menu of your choice. The next screen shows a list of options (like link to article, category blog, wrapper, login, etc). The very last item on this screen is the alias option. Choose that.
3. Enter a title for the link (i.e. the clickable text that appears on screen). Choose the page to which you wish to direct this link from the drop down on the right. Note that the alias field here is used in SEF URLs (search engine friendly URLs) if they are enabled.
4. Save. Now when you click your new link, you are "redirected" to the original location of this page. There's just one link for the page itself, one set of modules to manage.
Creating hidden menus in Joomla
- Details
- Posted: December 09, 2009
Every once in a while, you might want to create links on your website that aren't directly linked to one of the menus displayed on your website.
A great way to accomplish this is to use a hidden menu. Here's how to do it.
1. Go to the back end of Joomla and log in. Under Menus, pick Menu Manager. Click New to create a new menu. Call it hiddenmenu (all one word). Fill in "hiddenmenu" for the 4 blanks presented.
2. When a new menu is created, a module to go with the menu is also created. However, that module is not published. DO NOT publish the module.
3. Now you can create links on the hiddenmenu as you usually do, but since there's no module to display them, the links are "hidden" on the site. However, you can still assign modules to those pages, and you've still got a URL to link to them.
Finding the top menu
- Details
- Posted: November 12, 2009
I was recently asked if there was a way to get the topmost menu item in which a page sits. Let's say you have a menu like this:
Item 1
--Item 1.1
--Item 1.2
----Item 1.2.1
Item 2
--Item 2.1
--Item 2.2
Let's say you wanted to do something special with all the menus in the 'Item 1' tree and something slightly different for all the items in the 'Item 2' tree. You'd want to know which tree you were on. Here is a bit of simple php code you can use the get the top most menu item no matter where in the navigation you are (see php 4 version further down):
$menu = JFactory::getApplication()->getMenu();
$active = $menu->getActive();
$top = $active ? $menu->getItem($active->tree[0]) : null;
The variable $top will be the top menu item object from wherever you are. If you are at 'Item 1.2.1', $top will have all the information for 'Item 1'. If at 'Item 2.1' it will be 'Item 2'. Among the useful bits of information in any menu item object:
$top->id
$top->name
$top->alias
'id' is the menu item id seen as 'Itemid' in a raw Joomla URL and in the menu item manager.
Note that the above code will only work in php 5. If you are still running under php 4, upgrade now! But seriously - if you must use php 4, use the following variation on the above code:
$app =& JFactory::getApplication();
$menu =& $app->getMenu();
$active =& $menu->getActive();
if ( $active ) {
$top =& $menu->getItem($active->tree[0]);
}
else {
$top = null;
}

