Blog - thoughts and ramblings...

Non-Profits, Drupal and Convio

Someone asked me about our involvement with non-profits and Drupal's suitability compared to Convio recently. Here are some thoughts I shared with him and thought might be interesting to a wider audience.

More than 50% of our projects are with non-profits and it has been extremely rewarding. Almost all of them include Drupal. In general, we end up with non-profits that are a bit more established in scale. They are good partners that understand the value we deliver to their projects.

We also adopt one non-profit each year that we donate services to for an entire year. This year it's hannahgrimes.org. The last one was Cedarcrest (cedarcrestforkids.org) here in Keene, NH.

Not too long ago, I did a full evaluation of Convio vs. GetActive (another web-based, non-profit communication platform that was subsequently absorbed by Convio). From my perspective, their greatest value is not necessarily the software they provide. It's the organizational best practices they offer in helping non-profits leverage their tools. My opinion is that the tools within Drupal are an order of magnitude more flexible and scalable. There are two things that make Drupal by itself not as strong as a package as Convio:

  1. Out-of-the-box, Drupal lacks a pre-packaged set of features that are specifically integrated for a non-profit's core needs. It has better than 4400 modules which is like have a 4400+ auto parts lying around and a frame waiting to have the "right" ones applied.
  2. Many non-profits lack best practices knowledge and, perhaps organizational capacity, to realize the promise of tools like Convio and Drupal that help them to more fully engage their constituencies in their good work. They don't know where to start.

Convio has the benefit of a company that specializes in helping non-profits use its tools. Drupal has organizations like Lucidus (and many others). What I'm ultimately saying is that the tool is just a tool; our job is to help our clients leverage that tool to greatest effect to achieve their mission.

NH Drupal User Group Meeting

Many of us will be heading to Concord NH tonight to attend the initial meeting of the NH Drupal User Group.

Lucidus is excited to become a more active member in the Drupal community and supporting this user group is just one of the ways we will be doing that in 2009.

While the user groups tend to cater to a technical crowd, we also hope to have some "Lunch and Learn" events at our office where our customer can hear about the latest news impacting their websites and share best practices amongst themselves

Drupal Context Prefixes

So I've been digging into the Context and Spaces modules from Development Seed. These are two FANTASTIC modules that essentially, when combined, allow a developer to create a web site "feature" that can be essentially packaged for easily installation and use on multiple websites. For example, we're creating a project collaboration site to be used for our client projects that might include things like messages, files, site documentation, chat, support tasks, etc. The challenge thusfar is that the documentation is rather sparse but there are some great videos that show how to get started. They are great for setting up a demo of the tool but figuring out some pieces proves to be less than simple.

The purpose of this particular blog post is to land one piece of the documentation I wish I had discovered previously (perhaps for submission to the project as a whole). It is particularly related to Context Prefixes. So...here's my use case:

I want to be able to setup a project collaboration website where I can setup "projects" that are really organic groups. I want all of the organic group "projects" to sit under a subdirectory called "projects" (duh) so if I want to go to a particular project, I just go to http://www.domain.com/project/[projectId].

This can be done quite readily using pathauto with organic groups. However, using the Context and Spaces modules as default install, it will redirect any calls to an organic group using a "Group" context to http://www.domain.com/[pathprefix]. pathprefix is specified by a required field when the organic group "project" node is created. This completely pushed me away from what I really want which is the /projects/ path. Luckily, there is a screen under Admin > Build > Context > Context Prefix > Settings.

On a Space Type basis (site, group, etc.) you can set the Prefix Method to be one of three entries: Path, Keyed Pair or Full Domain. Path and Full Domain have some available documentation as follows:

Context prefix allows a URL 'prefix' to set a context. The module has two
different modes; 'path prefixes' and 'full domain'. Both modes set a context
based on a URL, but they pull for different places. The 'path prefix' mode uses
a string prepended to a Drupal URL, very similarly to i18n. If a prefix was
'foo' an path would look like 'foo/node/x'. Each time such a path was access it
would set the context that corresponds to 'foo'. 'Full domain' looks at the
domain being used to access the site, and correspondingly sets a context.

Great! Now we know what Path and Full Domain do. However, we still don't know what Keyed Pair does (and it turns out to be what we need). So here's my definition:

'keyed pair' mode uses a string prepended to a Drupal URL, very similarly to i18n, that includes a key term (e.g. "projects") and node id. If a key was 'foo' and the particular group id was 1, a path would look like 'foo/1/node/x'. Each time such a path was accessed it would set the context that corresponds to the group with a node id of 1.

In order to do this, select "Keyed Pair" from as the "Prefix method" for Group space at Admin > Build > Context > Context Prefix > Settings and click save.

My Book List...

Someone asked me this morning about business/motivational books that I've read recently so I thought I'd put together a quick list of the books I like and the ones I intend to read soon.

Here's my book hall of fame:

I tend to start a lot of books and keep them in progress for a while. Here are the books that I'm reading presently:

I'll add some more in a later post...

Great intro to version control...

It seems that every time I speak at a conference, I'm amazed when I ask for a show of hands of people who use version control software in their projects. The number is ridiculously low. Then we spend 10 minutes of the presentation going through why you would use it and how it works. I found a great visual intro to version control that's worth noting. (I'm a guy who likes pictures).

lucidus.net gets a facelift

So we've been talking for several months about the next phase of our lucidus.net site. It had been around for more than  a year and was looking a bit long in the tooth. Moreover, it was on Drupal 5 and needed to be brought current. However, as with every cobbler, our children were not getting new shoes when customers were ready to pay. That led us to an interesting approach that would help us put our money where our mouth is.

Old lucidus.net WebsiteA key advantage to Drupal (or any content management system) is the opportunity to freshen it over time without having to completely pull the tree up by the roots and replant. In our case, the lucidus.net site was a mess under the covers. It was our place to experiment with new modules and approaches and had become a bit messy over the past two years. If there were a place that we could definitively prove the viability of the system over time (and different approaches), it would be definitely be our own site.
To that end, we have begun a process with the following objectives:

  • Improve the site 10% at a time
  • Show continuous monthly improvement
  • Do NOT cut the tree and replant
  • Apply lessons learned and best practices we've developed over time with Drupal

We've completed phase 1 which was to freshen the theme of the system. Believe it or not, the new look is the same theme as the old with some tweaks to the stylesheet and page.tpl.php files. So far, we have implemented the following improvements:

  • Core navigation is easier to understand ("What We Do" vs. "Solutions") and look a bit more current. We also broke the primary navigation into two pieces to make "About Us", "What We Do" and "Our Work" easier to find.
  • Phone number is much easier to find
  • Added a "News" page link for current items
  • Added "Our Work" which is a portfolio/clients page. (This will tweaked soon as we need to link to the projects and provide more screenshots but didn't want perfection to get in the way of "much improved")
  • Added footer blocks that put news, blog entries and contact info at the bottom of each page. This improves SEO and also makes it easy to find for users without overwhelming the interface.

This was all done with a minimum of effort and the transition from old to new was (almost) effortless. Stay tuned for more improvements in January.

Our Friends at Clark-Mortenson Named Best Place to Work in NH

My mom used to say that you could tell a lot about the person from the company they keep. (Usually it was to encourage me to find new friends). Today I'm pretty proud of of the company we (Lucidus) keeps at Clark Mortenson Agency. They are a client and our insurance company and they just won BusinessNH Magazine's "Best Company to Work For" award for 2008.

They really are the kind of company you hear about whose customer service is top notch because you can just tell the employees are happy to be there. Every time we've ever had a question, concern or just needed to bounce something off an expert, they've at least been on the phone if not in our office. They really are an outstanding company to work with. Congratulations!

Navigation Isn't Necessarily the Place to Show Your Creative Flair

So I took my car to the dealership yesterday for service and took the shuttle back to work. Riding in the shuttle reminded me of one of the best examples of disregarding user's expectations regarding navigation. The shuttle was a Nissan Quest which is a pretty decent minivan in its own right. The design flaw is that the speedometer and other driver gauges are moved to the center of the dashboard. (Thankfully, they have redesigned the dashboard in more recent models).

While aesthetically beautiful, it completely disregards the fact that every other vehicle in the world gives the most important gauges to the person who needs them most, the driver. Here are just a few reasons I could see this being a problem:

  • The driver must think about looking to the right to see how fast he/she's going. This is a distraction from the road
  • Warning lights are not within easy vision while the driver looks forward down the road
  • Perhaps most importantly, it promotes backseat driving by the kids. "Slow down!" "Daddy, why are you going two miles above the speed limit?"

We see this type of thing on the web all the time. People navigate websites with a purpose in mind. They want to be dazzled by the content, not the navigational elements. By having the proverbial speedometer in the same place, they have confidence that they will succeed in their mission. I think Jakob Nielsen said it best in his Law of the Web User Experience which states "users spend most of their time on other websites."

Drupal Recognized in Information Week...

Interesting article in Information Week touting Drupal that states "Drupal is conquering new territory as companies look to build Web sites designed from the ground up to support social interaction." It's great to see the product get the attention it deserves. It seems more an more that the conversation in the open source world has moved from Joomla to Drupal and Alfresco. (Guess we picked the right horse).

SEO: 20 Ways To Help Visitors Find Your Website

You want a website. You want a website that reaches your unique audience. In this post I want to give you a list of the top ways to help your visitors find your website. We'll cover some search engine technical talk, but I want to keep it at a minimum. This list is about reaching your target audience. With the tips below I want to help you with that, and tell you what really matters.

  1. Get a clear idea of what your site is about and create a list of keywords that reflects how your visitors will search for you.
    Who is your target audience? Choose appropriate keywords to target them, avoiding the very most popular terms used. Instead, use longer phrases that capture the same search results. For example, do you sell pet products? Add keywords and phrases like all-natural dry dogfood, all-natural cat litter, pet supplements, and the like. But above all, take note of words your customers use. Make sure your words are about your company's services and products, and that they are words your visitors would regularly use when they search for you, not the words the industry uses.
  2. Create Title tags for your pages and use those keywords.
    The title tag is the HTML that creates the text at the very top of your browser bar on a website. Each page of your site should have a unique title. Title tags are very important to Google. In most cases, Google uses these as the headings on the search results pages. When you write your title tag, use only keywords that are relevant to the content of that page, and write the title tag so that these keywords are in the beginning or middle of that tag. Keep it short and descriptive. The best way to write a title tag is to set it up in a pattern like this: "description and keywords - company or website name". So for example, our Lucidus home page title should read "Websites, Web-based Software, Hosting & Training - Lucidus Corporation". The most important part of the title tag is the part unique to this page, not the name of the company. So if you have to choose which words to use, keep the text that best describes the page content.
  3. Use SEF (search engine friendly) URLs when editing new pages.
    Most website URLs for linked pages on content managed sites look something like this: http://www.your-site.com/index.php?option=com_content&task=view&id=8&Ite.... How the heck would a visitor remember all that? From a search engine's point of view, too, this tells you very little about what might be on the page, or how your site information is organized. Creating SEF URLs is something we are happy to say Drupal, our content management system, does very well. In Drupal, there is a path-auto module that assists with this process. The page of your website can be an auto-generated SEF URL based on the title of the page or you can enter it yourself. If you do create it yourself, replace all spaces with hyphens and exclude any words that aren't absolutely descriptive. An example of an SEF URL is this blog post's URL, http://www.lucidus.net/seo-20-ways-visitors-find
  4. Make content near the top of a page be keyword-rich.
    Start your page text with the most keyword-rich text. Rather than using a lot of fluff text to impress and lead up to what your website is about, get to the point as quickly as possible. When a visitor comes to your site and sees your website home page "above the fold", they should very quickly be able to know they are in the right place and what your website is about.
  5. Use keywords in headers, subheads, bold text and links.
    As you create your text for the site, create headings and first paragraphs for each section that summarize the whole point in plain English. Text used for links in your body copy should also be keyword-rich. When keywords are used in your text, it can help to use bold formatting to emphasize them.
  6. Use the template (CSS) for design.
    Start by working with a  website development company that uses the most current technical methods and proper coding for developing websites and web-based software applications. The latest methods separate content from presentation. Current website development techniques can, for example, enable the same set of navigation links to display within a visual interface in your browser and as a text list on your mobile phone. Because your programming is more streamlined, it permits quicker web crawling, and makes it easier for the search engines to access the real content of your site.
  7. Images cannot speak for themselves. Nothing important should ever be communicated using an image or flash only.
    When you do use images, pair up your images with text that describes the image and adds to its relevance within your site. You can do this by adding a caption to the image, an alt attribute and a title tag. Both the alt attribute and title tag are used to describe what the image is.The title tag is used for supplementary information, and often is used for display of a "tool tip" in browsers. The alt tag should describe what is seen in the image in a meaningful way.
  8. Help your visitors. Provide legible text, contrast and links in your design.
    Accessibility assists your search engine results and keeps your visitors on your site. Use  text large enough that visitors can read it. Check to see if your text can be scaled in a browser. Give your foreground text obvious contrast against background colors, and simplify your navigation so users know where to go.
  9. Test your website's usabilty, display and functionality.
    Make sure your website is tested for usability and functionality by a quality assurance professional. Your website also should be tested for function and display across all modern browsers such as Firefox, Internet Explorer 7 and Safari. If display on mobile devices is important for your visitors, this also should be tested.
  10. Don't underestimate a good visual design.
    People still respond to attractive visuals, good information hierarchy, and an organized structure to your content. They DO want to know what to check out first. They DO want to know what is most important to read and see. They DO want to know what will provide the answer to their question. Try to answer this need visually and in your text. Without reading a word, your visitors should know what is most important to check out.
  11. Create landing pages focused on particular keywords.
    While it is debatable exactly how important this is to search engines today, it may help to create a Description META tag for each landing page. In Drupal, there is a META module that assists with this process, and it also allows you to change the keyword meta. Google disregards the keyword META tag, but does use the description META in the description used in the search results. If it is missing, the text of the page is used.

  12. Create Unique, Original, Fresh Content (linkbait).
    I can't emphasize this enough. If at all possible, make creating regular content part of your continuing plan for your site. Unique, original content can come in the form of news, blogs, new products, contests, free stuff, expert opinions, top-10 lists, personal, creative, useful material; unique and original, all the time.
  13. Clean up broken links and don’t use “placeholder” pages on live sites.
    Do regular "spring cleaning". Throw out what is extra or useless, such as placeholder images, placeholder pages, excessive punctuation and broken links. Clean up text that has extraneous information that isn't relevant to the page. If you don't yet have content for a page, don't post it.
  14. Avoid hot linking your image content and avoid redirects.
    Search engines don't like it when you pretend the content is part of your site but it resides on a server completely unrelated to your site. In other words, don't include images or files hosted on someone else's server or have an important link on your site redirect to another domain. Keep all your files in your own server for more control of the content.

  15. If you post your email on the page, your email should be hosted using the same domain.
    If you are a reputable site, you won't be tom.smith@hotmail.com, you will be tom.smith@yourdomain.com. Basically, this adds to your credibility.
  16. Use your keyword phrases, but not ?too too much (please don’t spam us).
    Yes use your keywords and keyword phrases, but be careful to use text that sounds natural and doesn't look like you purposefully created it with the sole purpose of getting better ranking.
  17. Link to other similar or reputable sites and ask for a link when appropriate.
    Where useful and appropriate, this helps rank because you look like you are an authority on your subject and related information.
  18. Page length should not be too long.
    Search engines look more to the content at the beginning of your page and may disregard content further down the page, so if the page is long, break it into sections and use additional pages.
  19. Social networking can help generate visitors.
    Before someone else has your company or organization's name on facebook, MySpace, StumbleUpon or Twitter, perhaps you should. It is free, and if you take the time to post some useful content or links, grow connections and monitor the progress of these social networking accounts, you can generate more visitors for your site. The thing to bear in mind is your objective; only add people with similar interests or activities. Your connections should be ones who may grow or are already part of your target audience.
  20. New websites need more marketing effort
    Promote your site using other media. This means word-of-mouth, print marketing, press releases, your phone messages, business cards, everything. Every time your identity is out there, your website domain name should be too. Especially when your website offers more than an "online brochure", be sure to tell your target audience what it is they can do there that would be helpful to them.

Now that your website reaches your audience, how can you ensure your audience responds and reaches its goal? In a future post I will discuss what at Lucidus we call "Website Analysis", which can position your website to deliver great results based on analytics.

Pages