Feature
Post

Category
Column

What Do You Want to Develop With in 2008?

So with 2008 right around the corner, it is time to reflect on what has happened in 2007, and what we are looking forward to in 2008. I have watched as frameworks, javascript (ajax) and new versions of a variety of different programming languages picked up steam this year, but what are you hopeful for in 2008 in regards to developing new applications. Are you waiting for PHP 5 to build up more of a following, a new framework to make your development process faster, and more efficient, or a new version of an application that will finally have all the features you have been waiting for?

Personally, I am looking forward to WordPress 2.4, with its new administration panel design, ajax to start looking a bit old, and used in better ways, and more lightweight but powerful applications. If anyone knows of a more modern and up to date piece of software like Crimson Editor, please let me know.

I would love to hear what you are most looking forward to and why, as we finish up what was an amazing 2007.

Feature
Post

Category
Homepage News

Taking it easy over the holidays

Just wanted to let you all know that Devlounge will take it easy over the holidays. Personally, as of now I’m offline until January 7, 2008, so you won’t be seeing me around at least.

Take this time to read up in the archives if you feel like it, or just relax and enjoy the time off. That’s good too.

Happy Holidays!

Feature
Post

Category
Design

Break Your Design Mold

Designers can easily get stuck in the same old tracks. Be it rounded corners (which I bashed on Wisdump by the way), gradients everywhere, or just an overall style that could do with some fresh input.

A friend of mine reminded me of trying to do different things design-wise, every now and then.

A friend of mine reminded me of trying to do different things design-wise, every now and then. I’ve been too absorbed by everything else, so I just haven’t pushed myself forward as a designer. To do that, you need time to experiment, and you need energy to put into it. Two things that doesn’t come a-plenty, I’m afraid.

So here’s a thought for all the designers out there. Break your own mold on your next project. Do it in a different way, even if it doesn’t turn out just right, you’re bound to pick something up along the process.

Here are some suggestions on things you could do to break your mold:

  • Rethink font usage. We all got our favorites, now try something different.
  • Web 2.0 i very fresh and clean. Well, screw it – let’s do something dark and musty! Or the other way around, if you usually do dark designs.
  • Are you a blog designer? Then change the composition of your next blog design. Do a one column theme (you know I like ‘em), do something nifty with the sidebar, do a different navigation, just do something that isn’t so much Blog by You.
  • Change your use of images in your next design. Heavy users go light, and vice versa.
  • Use colors you normally wouldn’t! Try new blends and schemes. Or do it just in black and white, whatever differs from what you normally do.

Just a few pointers on the way, I know. What you can do to change your design mold is entirely up to you, and your style of course.

Me, I’ve already mapped out a design for a client, going with dark backgrounds and a powerful header/top, rather than the white fresh European thing I usually end up in. I’m confident it will turn out OK, I can see that already, and just by thinking along these lines I’ve come up with other things I want to try.

So go on, break your design mold. I dare you.

Feature
Post

Category
General

Client Work Over the Holidays

So now that we are into the holiday season, it might be a good time to remind you all to make sure you plan ahead for the holiday season. Don’t let clients pressure you into working rather than spending time with your family or friends. I know what it is like as I have made this mistake in years past. Everyone wants their projects done before the new year, even if it isn’t reasonable to make such a request.

At the end of November, I started telling everyone that any work started wouldn’t be done until after the seventh of January. This gives me plenty of breathing room when it comes to completing work, and makes sure that client expectations are set properly. I can now celebrate the holidays, and New Years without the burden of client work eating away at me.

This is a smart idea for another reason. Ever work on a project and not being able to get the feedback you need to finish it? Well, the holiday season is the worst for that. No one is ever at home or in their office, and if you don’t get the information you need, and finish your work on time, it only makes you look bad.

Be smart, plan ahead, and enjoy your holidays.

Feature
Post

Category
Publishing

The Dangers of Buying a Blog

So, for a while now, I have been watching Sitepoint, and other places where you can buy and sell sites. I have also watched as numerous sites I know well have been bought and sold, and there is one major thing I have realized: on average, a site will lose up to a third of its traffic after being sold.

I know this is a generalization, but from what I have seen over the last couple of years proves to me that I am right, especially where blogs are concerned.

Most blogs are focused around a certain person or persons running the show. They post on the site, deal with advertising, and design. As a reader, you build up certain expectations and when a site is sold, all of these expectations crumble as the new owner always does something different with the site.

So my first piece of advice to a potential blog purchaser is to make sure that you factor in this drop, as pretty much nothing you can do will stop it from happening, and the stronger the personality of the original owner, usually the greater the drop in traffic.

An example being Paul Scrivens’ sites. The guy has a very strong personality, and a certain style of writing, but even more than that, he has fans that follow him around, and are interested in what he is doing. As soon as he leaves a site behind, a certain group leaves as well, and there is nothing the new owner can do other than hire Paul to write more articles on the site they have purchased.

So does that mean you shouldn’t buy a blog? Well, of course not. Buying a blog, even one with a strong personality can be a great business move, and allow you to access an audience you might have missed before you purchased the blog, but make sure you factor in this drop, and make it part of your plans.

When purchasing a blog, make sure you have some promotion methods in place, some big ideas, and some powerful writers to help carry the site through the transition, and remember, the more you change, the more you can expect the original audience to go somewhere else. It is a very hard business issue that is more apparent in blogs than pretty much any other type of site.

I would love you hear your ideas on other dangers you’ve experienced in buying or selling a blog, and if you have bought a blog, was there a traffic dip, and how did you combat it?

Feature
Post

Category
Column

Things to Consider Before Releasing Something

Releasing something to the community? Good for you, and good for the community! Seriously.

However, there are some things that people who release themes, scripts, code snippets, and whatnot really need to learn. I’m not whining here, it’s great that you’re taking the time to share with everybody, but you’ll see that it’s a lot more appreciated if you do it properly, and you won’t get so many stupid questions.

The Release Checklist

Please make sure that you’ve got these points covered, before tooting the horn and releasing your work of brilliance:

  • Zipped up and ready to go? Not until you’ve uploaded it to your server/host, and then downloaded it and tested it. Too many scripts and themes have lost something in the upload, or maybe it never ended up in the zip in the first place.
  • Always include a readme with instructions! Go through the install phase, and tell me how to use your project, and what I can do with it.
  • Please make sure that links to your site, licenses, and things like that are available in the package.
  • Are you offering support on your project? How? When? Where? If you know you won’t let me know, I won’t begrudge you, but if you tell me that you’ll fix things at a day’s notice, and it’s been three months since the release, then I won’t be happy.
  • Whether you offer support or not, where should I go to find more help? This is probably a forum, a blog post, or something similar.
  • Where will new versions be released? In blog posts on your blog (then I might want to subscribe to it), or on a dedicated page? The latter is preferred since it can get pretty messy otherwise, especially if I found your nifty little offering via a search engine.
  • How do I upgrade? I need to know this, even if it’s just to overwrite the old version of your script.

Again, I’m not whining here, I think it’s great that there are people offering their hard work for free. Open source rocks, it really does.

However, the less I, as a user, will need to bother you, as a developer or designer, the better for both of us, right? Right. So take a moment to think about the things above, and we’ll be fine.

Carry on with your brilliance!

Feature
Post

Category
Publishing

Using WordPress MU to Power Multiple Blogs

WordPress MU, short for Multi-User, is a WordPress version that you probably have used without really knowing it. Automattic’s hosted blog service, WordPress.com, uses WordPress MU, although what you get when signing up with WordPress.com is pretty far from your basic WordPress MU install.

In other words, like most blog installs before plugins and nifty theming’s been added.

Choosing MU

I choose to build this on WordPress MU for one simple reason: I wanted to be able to create a beta blog in a few seconds, and MU let’s me do that.

Lately I’ve been doing a lot of WordPress MU work for a national blog network that I’ve founded. All is not done, but it’s launched over at pakten.se, if anyone’s up for some Swedish. The front page is one of the things on my todo-list by the way, so don’t judge me too hard now, eh? Links to the seven (as I’m writing this) blogs within the network is available in the top right, in the bar, if you want to click around.

I choose to build this on WordPress MU for one simple reason: I wanted to be able to create a beta blog in a few seconds, and MU let’s me do that.

A Whole New WordPress World?

Nope, it’s not. More or less every theme will work, and most of the plugins available. If you’re running a hosted WordPress installation, you can probably just move every extra little feature you’ve incorporated there, into a WordPress MU blog.

However, MU doesn’t have the ease that WordPress offers. Installation is still simple, permalinks a breeze, but there are a few things to consider. One being the fact that the MU community is small (or very silent), and documentation is poor at best. If you run into problems you’ll soon find yourself in the MU forums, and that’s far from the best way to find information.

Maybe I’m spoiled with the WordPress Codex wiki, a place that’s still valid since MU is basically WordPress for more users, but I thought twice before going with MU at all. Yes, I know, it’s opensource and everyone’s participating for free, yadayada – I can relate to that, and understand it. However, you won’t be having any users unless you offer decent documentation. I most certainly know my way around WordPress, but if I hadn’t I’d never dared to give MU a shot on a public project.

Pros and Cons with Using MU

Remember, this is assuming we’re using WordPress MU to power multiple blogs. If you want to offer your visitors a free blog, then MU really is your only WordPress option, since installing a WordPress blog for each person that wants to blog is tedious and slow.

WordPress MU supports most themes and plugins, as I stated above. It gets better, however. You can put plugins in a mu-plugin directory (much like you do with regular WordPress plugins in wp-content/plugins), and that means that they are automatically available and activated for all blogs.

Time saved for the multiple blogger. Nice.

That’s the good part. The bad part is that it doesn’t work with a lot of plugins, since no admin interface will show up, and if the plugin is manipulating the database, then forget about it. You can still put plugins in wp-content/plugins, however, and activate them manually for each blog. Just like you would if it was traditional stand-alone WordPress installs.

Themes are the same as with original WordPress, with the lone exception that you’ll have to activate them for usage in MU Admin, a new tab for administrators in WordPress MU’s admin interface.

So far so good, right? Sure, not every plugin can be activated in one place, but that’s a small price to pay for just having to update the blogging software on one place, and the same goes for plugins and themes of course.

Time saved for the multiple blogger. Nice.

Problems with MU

Yes, time saved indeed. There are, however, quite a few problems that you’ll have to overcome. Like editing core files for allowing certain tags to be used in the Post and Page writing fields in admin. Per default, you can’t even publish a YouTube video, since some of the tags the embed code uses get stripped away. I found quite a few things that I wanted to allow, since I’m in control of my own blogs – which was the whole purpose here.

Naturally, the not allowed tags are meant to protect the MU administrators when offering blogs for free, to anyone who wants ‘em. Still, editing wp-includes/kses.php (where you’ll set allowed tags and so on) isn’t a small thing for someone not used to hacking som PHP. Not very user friendly.

Another problem I’ve had with MU is pinging, still unresolved. Per default, MU pings pingomatic.com, which is fine. I’d like to add more services though, which isn’t possible in admin – I can just add that one. As you might know, you can add just about how many you want in regular WordPress.

I have yet to find out how to add more ping services. Unfortunately, the small MU community haven’t been very helpful yet – and this is a problem I’d reckon could arise to quite a lot of people. What little documentation there is doesn’t help either. In fact, with all the “MU is just like WordPress so read the Codex” references that are out there, I could see users get pretty confused about these things, since pinging several services is a standard feature in WordPress.

(Do you know where I should look or what I should do to ping multiple services in WordPress MU? Get in touch, please!)

Final Verdict for Using MU to Power Multiple Blogs

I almost regret going with MU. It lacks the polish of regular WordPress, and the community is a lot smaller. I feel a lot more left out on my own here, than I did when I first ventured into WordPress.

However, the ease of which I can create blogs – allowing public creation or not – makes up for it. Just having to update on blog system, on set of plugins, that also saves me time.

While I wouldn’t pick MovableType over original WordPress, the lack of support and help for MU makes me wonder if there’s something better out there.

If you know your way around WordPress, and know a little about PHP, then WordPress MU is a good choice for powering multiple blogs. Otherwise you’ll have a hard time, or harder at least – MU isn’t as user friendly as original WordPress.

And by all means don’t expect your fresh WordPress MU install to look and feel like sleek WordPress.com. Then you’ll cry…

Finally, they say MovableType OpenSource will support multiple blogs in one install. It’s just available as a nightly build still, and I haven’t had the time to check it out, but if that’s true then WordPress MU is in for some serious competition. While I wouldn’t pick MovableType over original WordPress, the lack of support and help for MU makes me wonder if there’s something better out there.

Competition is good. Users will be the great gainers here.

Feature
Post

Category
Code

Client Friendly WordPress Themes: Header.php

So today I wanted to take some time to talk about how you can make a WordPress theme more friendly for your clients, friends and general distribution by taking advantage of the template system built in to WordPress.

We are going to start with the header, an often misunderstood part of the WordPress theme. The part of the theme that can do a fair bit of the heavy lifting in a theme.

Here is the full text of the code I am going to dissect for you today:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title><?php if ( is_home() ) { ?><? bloginfo('name'); ?>&nbsp;<?php bloginfo('description'); } else { wp_title('&nbsp;'); ?>&nbsp;by&nbsp;<? bloginfo('name'); } ?></title> 

<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 

<link rel="shorcut icon" type="image/x-ico" href="<?php bloginfo('template_url'); ?>/favicon.ico" />

<link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/javascript/imghover.js"> </script>

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />

<?php wp_head(); ?>
</head> 
<body> 

<!-- header START -->
<div class="Header">
<h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1>
<div class="Desc"><?php bloginfo('description'); ?></div>  
<!-- header END -->

<!-- container START -->
<div class="Container"> 

The first thing that is relevant to WordPress theme authors is the title tag. Most people, by default just put the name of their blog, and a catch phrase as their title and while this is all well and good, for search engine optimization purposes, you might want to go another route. Sure, there are WordPress plugins that can help you add more optimizations to your blog, but I don’t like to have to rely on plugins, unless I have to, especially when I am going to be giving a theme to someone else.

<title><?php if ( is_home() ) { ?><? bloginfo('name'); ?>&nbsp;<?php bloginfo('description'); } else { wp_title('&nbsp;'); ?>&nbsp;by&nbsp;<? bloginfo('name'); } ?></title>

What I have done here is to basically say, “if we are on the home page, show the blog’s name, and description, otherwise show the title of the current article and then the title of the blog.” While this is not perfect, it is a huge step up from just showing the blog’s name, and description on every page, and every article.

The bloginfo(‘name’) and bloginfo(‘description’) come from the WordPress administration under, the Options -> General panel in the sections that say, Blog Title and Tag line.

The next line of note includes another reference to bloginfo, but this time asking for the template URL.

<link rel="shorcut icon" type="image/x-ico" href="<?php bloginfo('template_url'); ?>/favicon.ico" />

This allows us to easily grab things from the themes folder, even if the user renames it for whatever reason. You will see this referenced in a few places in my WordPress themes, including the rare times I want to call a graphic without using CSS.

<img src="<?php bloginfo('template_url'); ?>/images/coolgraphic.jpg" />

The next relevant line is dealing with the stylesheet. WordPress looks for style.css when using their templating code, so make sure your style sheet is appropriately named.

To reference it, just use the following code:

<link href="<?php bloginfo('stylesheet_url'); ?>" rel="stylesheet" type="text/css" />

Next, we have the RSS code. This will allow certain browsers like Firefox, or websites like Bloglines, to find the RSS feed you want associated with the site.

Each type of feed that WordPress creates must be linked to if you want them to appear. Some people pick and choose which formats they like and display them, but I display the two most common: RSS 0.92 and RSS 2.0.

Here is the code to do that:

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />

You will notice that almost everything I have mentioned thus far has made use of the very useful bloginfo function, and if you want to learn more about it, I suggest reading the WordPress Codex.

<?php wp_head(); ?>

If you want your theme to work with plugins that exist, then adding in the wp_head call is very important. This little function allows a vast number of WordPress plugins to add all sorts of code to the top of the theme. I have seen far too many of them not include it, and thus a huge number of users complained.

<h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1>

The above code includes the get_option(‘home’) function which is just one of the ways of linking back to the main page of a blog. I use this option to link to specific pages as well, though I don’t always recommend it.

With this information, and the WordPress Codex, you too can start to make your WordPress theme work well, no matter who uploads it.

Idea for this post by Chris Garrett of the449.

Feature
Post

Category
Code

Random Images with PHP

Every now and then you want to randomize images, usually headers of sorts. This is pretty simple, with just 9 lines of PHP code you can rotate randomly between two images.

The PHP Script

Put this where you want to rotate your headers:

<?php
	$images = array(
	    0 => 'image1.gif',
	    1 => 'image2.gif',
	);
	$image = $images[ rand(0,(count($images)-1)) ];
	$output = "<img src=\"/mysite/randomimages/".$image."\" alt=\"\" border=\"0\" />";
	print($output);
?>

This will rotate between image1.gif and image2.gif, which are located in /mysite/randomimages/ on your server.

Adding more images is easy, just continue to add lines, starting with the next digit and has a corresponding file name, in the $images = array(); segment. This is the same code with five images instead of two:

<?php
	$images = array(
	    0 => 'image1.gif',
	    1 => 'image2.gif',
	    3 => 'hello.gif',
	    4 => 'monkeys.gif',
	    5 => 'ninjas.gif',
	);
	$image = $images[ rand(0,(count($images)-1)) ];
	$output = "<img src=\"/mysite/randomimages/".$image."\" alt=\"\" border=\"0\" />";
	print($output);
?>

Easy, isn’t it?

Now rotate those headers, photos, or whatnot!

Feature
Post

Category
General

Announcing the Rockarolla Premium Podcast Jingle

Rockarolla - The Podcast JingleI’m pleased to announce the first premium podcast available for download from Devlounge. The podcast, titled Rockarolla, is free to use for both personal and commercial use, and is available right now. Stefan Hedengren, known for his blogging over at Audival and ProToolerBlog, is the musician hired for this project. He has authored a readme with instructions and tips for using the Rockarolla Podcast Jingle.

The Rockarolla Podcast Jingle is available for download now!