Best Practices

Two OpenID Screencasts

August 16, 2007 - 13:01

OpenID is an open decentralized identity framework where you can get your own identity and re-use it across the internet. The first application is single sign on which means you can login onto many websites and web applications and services (more being added daily! And all Bryght Basic sites can now support OpenId) using just one id (a URL) and one password rather than multiple passwords and multiple identities which is the case today.

To explain OpenID single sign on, we have two new screencasts for OpenID which has been included in Bryght Basic since July 31, 2007:

Tabs with arguments and taxonomies

June 18, 2007 - 23:15

Our latest screencast: Tabs with arguments and taxonomies

How To Create a Dynamic Web 2.0 Brochure Site in an Hour

March 23, 2007 - 13:13

What will you have after an hour?

You will have a dynamic, easily updatable, search engine optimised 'Web 2.0' website (including RSS feeds so that you get the automatic high search engine rank that blogs enjoy assuming you create compelling content constantly):

  • An About Page
  • A Contact Us Form
  • A Products (or services page)
  • A simple front page with two paragraphs about your company and contact information plus a sidebar with links on the right which link to headlines from your five latest news articles.
  • A news page with news articles about press releases, events and news. If you keep writing compelling news articles, you will have a high search engine rank.

Note that this is only one common configuration for a Bryght site. Bryght sites are flexible and can be set up in many ways. See Types of Sites for other common configurations.

Categories:

Podcasting on Your Bryght Site

June 21, 2006 - 10:06

Quick Start Guide

If you understand the concept of podcasting, then you can get started right now with your Bryght site. For a more in depth treatment, see "Setting Up Podcasts-Only Feeds" below.

  1. enable the upload module under Administer (top menu) » Site building » Modules.
  2. create a tagging vocabulary if you haven't already. We have instructions on how to do that.
  3. set upload permissions under Administer (top menu) » User management » Access control.
  4. set which content types (probably the 'blog' type) under Administer (top menu) » Content management » Content types.
  5. create blog posts as usual, and attach MP3s to the posts (at the bottom of the screen).
  6. tag the posts with 'podcast' or whatever you will use to call your podcast.

For more detailed instructions, including how to set upload size limits, skip down to the section "Setting Up Podcasts-Only Feeds".

Background to Podcasting

In late 2004, people looking for an easier way to create and host their own personal radio shows and/or daily rants in audio form in MP3 format came up with the idea to use the RSS syndication format to ease distribution and discovery of others' shows. They also wanted an easy way for listeners to transfer their shows from the Internet to their portable digital music player. Since the Apple iPod was the most popular digital music player at the time—and at this writing still is—and the new way of distributing shows is a lot like broadcasting but in a more distributed fashion, the innovators around the phenomenon dubbed it "podcasting". Note that you do not need an Apple iPod to listen to podcasts: the sound files should work on any computer or MP3 player.

What a podcast can be:

  • a 'real' radio talk show, with people calling in and/or the host interviewing people famous to them and even commercials. This generally happens with professional-quality mixing hardware and software, but can still be accomplished with a microphone and a line-in.
  • rants and raves about their favorite subjects
  • a way to promote their band or music that you think deserves a wider audience
  • a "letter to home" updating friends and family about the latest happenings in your life

It's not limited to the above things: podcasting is truly the unedited voice of the individual, meaning anybody with a microphone and a line-in can record their voice to their computer, upload the file to their site, and create a podcast.

Bryght sites come out of the box ready for podcasting: whenever you attach an MP3 (or any file) to a post, the RSS feed for that post contains an enclosure element with the URL of the first file listed as the attachment to that post. The following are some ideas to create your own podcasting site using the Drupal-powered Bryght platform.

Setting Up Podcasts-Only Feeds

What makes podcasting different than, say, just uploading an MP3 and linking to it from your weblog are RSS feeds with the enclosure element. That's a technical way of saying that some programs can get a machine-readable file that tells the program to download the MP3 at a time you specify, rather than having to check the site and download the file yourself.

Bryght sites will automatically create a URL for the MP3 you upload, plus it will place that URL in the enclosure element of the RSS feed without you having to learn the RSS format. Having a separate RSS feed for podcasts will let your listeners get only pointers to MP3 files, plus whatever notes you write out for the podcast.

  1. Enable the Upload module under Administer (top menu) » Site building » Modules.
  2. Make sure that you give the "upload files" permission to roles you would like to allow podcasting. This is done through Administer (top menu) » User Management » Access control.
  3. (optional) Create a role just for Podcasters. That role would need the "upload files" permission as well as any other normal permissions to create content. If you're the only user of the site, then you can skip this step.
  4. Change the upload settings to allow for MP3 uploads. Click Adminster (top menu) » Site configuration » File uploads.
  5. If there are no roles listed, and you are the administrative user (the first user on the system), then you are able to upload as big a file as you want. If there are roles, however, you will see boxes for each role with a list of file extensions. Add a space at the end of the list, then "mp3" (without quotes) to the roles you wish to allow MP3 uploads.
  6. Type in the maximum total size of files a user can upload.
  7. Type in the maximum size of file, in megabytes (MB), that a user with that role can upload. The ideal size will depend on things like length of podcast, what type of audio is included, and the encoding of the MP3 file. Unfortunately due the limitations of today's Internet, with limited broadband access (still) and shaky browser uploading, 10MB is really the effective maximum upload limit.
  8. Repeat steps 5-7 for all the roles on your system.
  9. If you're using blog posts to attach podcasts to, either create a vocabulary for the 'blog' type if you haven't already. This can be done through Administer (top menu) » Content management » Categories.
  10. In that vocabulary, create a taxonomy term specifically for podcasts. That way you can have an RSS feed just of podcasts. The name of the term is up to you, but you might want to call the term whatever title you are giving to your show's name, or "Podcasts" if you want to keep it general.
  11. (optional but recommended) create a user-friendly URL alias for the podcasts RSS feed. Either:
    • enable the Pathauto module under Adminster (top menu) » Site building » Modules. This will automatically create easy-to-read URLs for your posts and feeds. We have more detailed instructions on how to configure Pathauto if you need to tweak the settings. OR
    • copy the URL of the link to the XML button at the very bottom of your podcasts page into your computer's clipboard memory. Then click Administer (top menu) » Site building » URL aliases » Add alias tab. Paste in the URL but remove the http:// and the domain. If your taxonomy URL looks like http://www.example.com/taxonomy/term/42/0/feed then you would remove the http://www.example.com/ part. In the alias box you can put something like podcast-rss. In this case, the URL of the podcast feed ends up being http://www.example.com/podcast-rss

Posting a Podcast

After you've setup a category for your podcasts, it's time to start recording and posting it to your site!

  1. Record your podcast to your computer. Make sure you save the file on your hard drive for backup purposes. Here are some guides on how to podcast:
  2. If you have post-production software to mix in other audio or change the encoding or length of the podcast, do the editing before you post the podcast file.
  3. Create a blog post through create content » personal blog entry This is where you can briefly announce the podcast or even add show notes like Roland does for Dogma Radio, where he includes comprehensive links to the people and ideas he mentions in his podcasts.
  4. Type in a title of your podcast. It could include things like the subject of the podcast or who you interviewed.
  5. If you have permission to, choose whether the post appears on the front page and whether you will accept comments on that post. If you accept comments, that blog post can be the point where people respond to your show in text form. (Some people may be inclined to respond in their own podcast!)
  6. If you created a podcast category, select that category for the blog post. In our example, that would be the "Podcast" term.
  7. In your main body, you can write some episode notes. These are useful for several reasons:
    • it allows readers who may not have time to listen to the podcast to get the gist of what you are talking about
    • you can add links to the people and ideas you discuss so that your readers (and listeners) can get more information
    • you can link directly to the MP3 file, to make it obvious where people can download it for later listening. The URL of the file will be listed after you attach it. See the following steps.
  8. You should see an "Attach file" box. Use this to browse your hard drive for the MP3 file you created for your podcast.
  9. Click the "Attach" button. This will list the file on your blog post.
    • As a convenience to your readers, adding a link to the podcast in the body of your blog post allows the people who don't bother scrolling down to the attachment link at the end of the post (or who don't use software that automatically downloads podcasts) to download the MP3 to their favorite audio player.
  10. Click "Submit".

Roland Tanglao contributed in writing this article. He podcasts for Urban Vancouver, Dogma Radio and, of course, Bryght.

Categories:

Display only tags (and not other category types) below your content

November 24, 2005 - 13:21

In node.tpl.php, the following code shows links to all categories to a node, regardless of what kind of categories they are.

If all you want are to list the tags, use the following PHP snippet in place of the code that displays categories. You will need to know which vocabulary you've set as "free tagging", that is, which vocabulary ID. Change the first line to reflect your settings. If you don't yet have a vocabulary set to free-tagging, click administer » categories » add vocabulary tab and check the box next to "Free tagging" after you've filled in the other required fields.

So using the in-browser theme editor (see our instructions on setting up the theme editor and using it), replace the code in node.tpl.php above with the code below, and it will show a comma-separated list of tags linked to their individual taxonomy pages.

<?php
$vid = 1;
$result = db_query("SELECT t.tid, t.name FROM {term_data} t, {term_node} r WHERE r.tid = t.tid AND r.nid = %d AND t.vid = %d ORDER BY weight, name", array($node->nid, $vid));
while ($term = db_fetch_object($result)) {
$tags[] = l($term->name, 'taxonomy/term/' . $term->tid);
}
if ($tags) {
print t("Tags: ") . implode(', ', $tags);
}
?>

Categories:

Replace the White on Red XML (RSS) Icon With a Custom Image

October 17, 2005 - 14:04

With some knowledge of PHP and a PHPTemplate-compatible theme—all Bryght themes are PHPTemplate-compatible—you can replace the XML feed icon with one you've made yourself (and not just on the sidebar block but when it appears at the bottom of a page as well) by following the instructions below. It is based on the instructions on how to override a theme function at Drupal.org.

  1. Either create a new theme or modify an existing theme. You can do this using the in-browser theme editor.
  2. Create a file in that theme's directory called template.php or, if it already exists, edit the existing file.
  3. Insert the following code (replacing an entire phptemplate_xml_icon() function if it already exists), between the <?php ?> tags:
    function phptemplate_xml_icon ($url) {
    $icon_url = 'path/to/new/icon';
    if ($image = '<img src="'. $icon_url . '" alt="'. t('XML feed') . '" />') {
    return '<span class="xml-icon"><a href="'. check_url($url) .'">'. $image. '</a></span>';
    }
    }
  4. Visit administer » themes to register the new icon function.
  5. Enable the theme if necessary.
    Categories:

    Create your own personal Urban Vancouver hyper-local citizen journalism site

    May 2, 2005 - 14:17

    Introduction

    "Hyper-local media" and "citizen journalism" are buzzwords that are getting lots of attention these days. Why? Of course, I don't know the whole answer but part of it is that under 35s don't read newspapers and this is seen as an effective way of getting their attention and engaging them by letting them blog their own news and contextualizing news to where they live instead of the big media hubs like London, New York, Washington, Ottawa, Toronto, etc.

    Urban Vancouver (henceforth called UV) is one example of a hyper-local/citizen journalism site. It's news for Vancouverites (that's BC, Canada not Washington, USA) by Vancouverites. There's no barrier to entry (or more accurately, the barriers to entry are much lower). Anybody with a Vancouver connection can join for free and blog for free (including photos and soon, audio and video) and their blog posts show up automatically on the front page.

    Before Bryght, creating your own Urban Vancouver (which is a Bryght site) was imposssible for non technical people. With Bryght, you can create your own UV in a matter or hours or days whether you are technical or not.

    What you will have

    Your own "UV-like" site (to pretentiously name drop European places that I have lived, how about Friedrichshafen Heute, Belsize Park Today, Hadley Common Today or for a Vancouver example how about Cedar Cottage Today?) with blogs automagically published to the front page.

    You won't have a cool "Bright Creative Dave Shea" look like Urban Vancouver, but that can be arranged. Contact us and we can put you in touch with a reseller (or do it yourself if you know modern, table-less CSS/HTML design) who can get you a fantastic look and feel.

    Note that this is only one possible configuration for a Bryght site. Bryght sites are flexible and can be set up in other many ways e.g. brochure sites. See Types of Sites for other common configurations.

    Prerequisites

    1. You need your Bryght site to have been created. Your reseller can do this for or you can do this yourself at Bryght.com.
    2. You need a userid and password for an account with admin privileges. We recommend using an account that is NOT the admin account but has full privileges.

    Use the easy 10 step site checklist, Luke!

    This is a UV specific version of Boris' most excellent new site checklist.

    Step 1 - Configure your admin settings

    • Click Administer » Site settings » Site information
    • Fill in your Name, and email. The rest of the settings can be left at their defaults if you wish.
    • Click "Save configuration"

    More info on configuring admin settings

    Step 2 - Ensure aggregator, blog, and image gallery are enabled

    • Click Administer » Site building » Modules
    • Make sure Aggregator, Blog, Blogapi, Comment, TinyMCE (if you want WYSIWYG HTML editing), and image are checked under the "Enabled" column
    • Leave the other modules at their default settings
    • Click on "Save configuration"

    Step 3 - Set workflow so that blog posts are published to the front page and comments are enabled

    • Click Administer » Content management » Configure Types
    • Click "edit" for the "Blog entry" content type.
    • Make sure "Promote to front page" is checked so that blog posts are published to the front page.
    • Make sure "Published" is checked
    • Click "Save configuration"

    More info on default workflow for various content (also called node) types

    Step 4 - Configure users to allow users to sign up without approval, user pictures (avatars) and to enable blogs and image galleries for registered users and comments for anonymous users

    Allow people to create accounts without approval, and add user pictures:

    • Click Administer » User management » User settings tab
    • Check "Visitors can create accounts and no administrator approval is required."
    • Click on "Enabled" under "Picture support:"
    • Click "Save configuration"

    Enable blogs, comments and image galleries for registered users and comments for non-registered users:

    • Click on Administer » User management » Access control
    • Under "anonymous user", make sure the following are checked: "access comments", "access content", "access news feeds", "post comments" "post comments without approval", "search content", "vote on polls"
    • Under "authenticated user", make sure the following are checked: "access comments", "access content", "access news feeds", "post comments" "post comments without approval", "search content", "vote on polls", "edit own blog", "edit own pages", "edit own stories", "administer images", "create images"

    More info on user roles and permissions

    Step 5 - Create geographic and newspaper style categories for blogs and images

    For your own personal UV, you wouldn't use the Vancouver geographic categories (Chinatown, Commercial Drive, Downtown, Eastside, Gastown, Kitsilano, Main Street, etc.). Instead, you would use the ones applicable to your community. For this example let's pretend our community is called 'Bedrock' :-) and the neighbourhoods are called 'China Rock', "Commercial Rock', 'Down Rock', 'East Stone', and 'Gas Rock':

    • Create the neighbourhood vocabulary:
      • Click Administer » Content management» Categories » Add vocabulary tab.
      • Type in Neighbourhood (or Neighborhood if you prefer) under "Vocabulary name:"
      • Under "Types:", check "personal blog entry" and "image"
      • Under "Hierarchy:", check "Single"
      • Leave "Multiple select" unchecked to allow content to be classified as belonging to only one neighbourhood at a time. You could check this if you are going to allow content to be classified under multiple neighbourhoods at a time.
      • Check "Required" to force people to people to fill in the neighbourhood.
      • Click on "Submit"
    • Create the neighbourhood categories:
      • Add the Bedrock category:
        • Click Administer » Content management » Categories
        • Next to "Neighbourhood", click "add term"
        • Under "Term name" enter "Bedrock" - This will be the "catchall" category for things that are applicable to all of Bedrock in the same way that the Vancouver category on UV is for anything applicable to all of Vancouver.
        • Under "Parent:", select "<root>"
        • Click on "Submit"
      • Add the 'China Rock', "Commercial Rock', 'Down Rock', 'East Stone', and 'Gas Rock' categories as subcategories of Bedrock:
        • Click Administer » Content management » Categories
        • Next to "Neighbourhood", click "add term"
        • Under "Term name" enter "China Rock".
        • Under "Parent:", select "<Bedrock>"
        • Click on "Submit"
        • Repeat for 'Commercial Rock', 'Down Rock', 'East Stone' and 'Gas Rock'

    For the newspaper style categories, we looked at the local papers and came up with our own set of categories (General, Arts & Entertainment, Business, Environment, Fashion, Food & Dining, Health & Fitness, Media, Music, Politics, Real Estate, Recreation, Society, Sports, Technology, Travel) for UV. Feel free to use your own of course! For this example we will use the same ones as UV.

    • Create the newspaper style categories, which for UV which we call 'Topics':
      • Click Administer » Content management » Add vocabulary tab.
      • Type in Topics under "Vocabulary name:"
      • Under "Types:", check "personal blog entry" and "image"
      • Under "Hierarchy:", check "Single"
      • Check "Multiple select" to allow content to be classified as belonging to multiple topics.
      • Check "Required" to force people to people to fill in the topic.
      • Click on "Submit"
    • Create the categories under Topics. Add the General category:
      • Click Administer » Content management » Categories
      • Next to "Topics", click "add term"
      • Under "Term name" enter "General"
      • Under "Parent:", select "<root>"
      • Click on "Submit"
      • Repeat for 'Arts & Entertainment', 'Business', etc.

    More info on categories

    Step 6 - Set module specific Settings

    Click Administer » Site configuration. Underneath you will see a list of modules whose settings you can change.

    A few modules (like image) require you to access their settings in order to set them up:

    • Click Administer » Site configuration » Image
    • The very first time you do this, it will initialize itself and create some directories for images so you need to do this at least once before you start adding images. More info

    Other modules have settings that you may want to change.

    Step 7 - Set up input formats to remove dangerous tags and enable tags you need

    By default, Bryght allows only a very small set of HTML tags to be entered by users using the "Filtered HTML filter". Like UV, you may want to let the user enter tags for bold, italic, paragraph and block quotes, here's how:

    • Click Administer » Site configuration » Input formats
    • Next to "Filtered HTML" and under "Operations" click on "configure"
    • Click on the "configure filters" tab
    • Under "Allowed HTML tags", add <b>, <i>, <p> and <blockquote> to the list of tags
    • Click on "Save configuration"

    More info on Input Formats and Filters

    Step 8 - Configure the RSS Aggregator to subscribe to all related feeds

    UV's RSS aggregator is configured to subscribe to every single RSS feed related to Vancouver that we know about which is several hundred. These feeds are grouped into one or more categories that make sense for Vancouver. The categories are Vancouver blogs, food, business, technology, etc. For example, a food blog would be categorized into the Vancouver blogs and food categories and about a technology business would be categorized into Vancouver blogs, business and technology.

    This provides a portal for Vancouver blogs as well as helps improve UV's search engine rank for Vancouver related keywords.

    For this example, we will use the categories Bedrock blogs, food, business, and technology but of course you can use whatever categories you wish.

    • Configure the aggregator:
      • Click Administer » Content management » Aggregator » configure tab.
      • Select "5 items" for "Items shown in sources and categories pages:". Of course you can pick another number here but five is about right for most sites.
      • Check "multiple selector" to have a multiple select box rather than checkboxes.
      • Click on "Save configuration"

      More info about Configuring the Aggregator

    • Create the aggregator categories:
      • Click Administer » Content management » Aggregator » Add category tab.
      • Enter Latest Bedrock Blogs under "Title"
      • Select 5 items under "Latest items block:"
      • Click on "Submit"
      • Repeat for food, business, technology, etc.

      More info about creating aggregator categories.

    • Subscribe to all relevant feeds in the aggregator:
      • Find the RSS feed (for more info, see how to find RSS feeds from blogs and websites and how to create RSS feeds from keywords using RSS search engines like PubSub and Feedster) that you want to subscribe to and copy it to your clipboard.
      • Click on Administer » Content management » Aggregator » Add feed tab.
      • Fill in the title e.g. Bedrock News under "Title:"
      • Paste in the URL of the feed under "URL:" e.g. http://www.bedrocknews.com/index.xml - not that this is a not a real URL for an RSS feed, just a made up example!
      • Select 3 hours under "Update interval:"
      • Select 5 items under "Latest items block:"
      • Check the category or categories to which this RSS feed belongs, in this cast "latest Bedrock Blogs"
      • Click on "Submit"
      • Repeat for all the other Bedrock related RSS feeds.

      More info on subscribing to an RSS feed.

    Step 9 - Set sidebar blocks so that popular content is on the left and blogs from the RSS aggregator and Upcoming Events are on the right

    Make the left sidebar contain popular content

    • Click Administer » Site building » Blocks
    • Check "Enabled" and "left" next to "Popular content"
    • Click "Save blocks"

    Make the right sidebar contain the latest update blog posts from the RSS aggregator with Upcoming Events below:

    • Click Administer » Site building » Blocks
    • Check "Enabled" and "right" and select "0" next to "Latest Bedrock Blogs"
    • Check "Enabled" and "right" and select "-1" next to "List of upcoming events". Since 1 is greater than 0, this means Latest Bedrock Blogs will float above "List of upcoming events".
    • Click "Save blocks"

    More info on enabling and setting the order of sidebar blocks and for those who wish to make money via ads, check out How to add a Javascript (e.g. Google Adsense, SiteMeter, Blogrolling.com, etc.) Block to the Sidebar

    Step 10 - Point your domain to servers so you can use your own URL, not Bryght's

    Two options:

    1. Use Bryght's name servers:
      • Point your name server to ns1.bryght.com and ns2.bryght.com
    2. Use your existing name server and just update DNS to point to Bryght's server:
      • [PREFERRED] create a CNAME that points your site to horse.bryght.com e.g. if your site is community.bedrock.com, create a CNAME that points community.bedrock.com to dudley.bryght.com OR
      • Create an A record that points to 209.31.179.218 e.g. an A record that points community.bedrock.com to 209.31.179.218. This solution is NOT preferred because if we change the IP address of the server, you will have to update your A record.

    More info about pointing your domain to Bryght's servers.

    All Done! Eat some chocolate or Mohnkuchen! What's next? Gardening and Promotion

    Actually, that was the easy part and you don't have everything that UV has (e.g. discussion forums. It depends on your particular community as to whether you need forums or not. Each blog post has threaded comments which are very similar to forum topics. The only difference is that you have to be a member to create a blog post whereas you can set up forums so that non members can create forum topics.). That said, you definitely deserve a pat on the back and chocolate or mohnkuchen! Technology is easy. Creating and growing a living community where people actually create content (by blogging, posting pictures,sand comments) is not technology. It's sociology!

    Speaking of sociology, people who are not bloggers don't usually like a very long scrolling "River of News"/"Conveyor Belt Sushi" front page such as the front page on Urban Vancouver. You may want to have a front page with minimal scrolling like the most excellent Bluffton Today.

    Of course, you will need a customized look and feel at some point. As we said at the start, contact us and we can put you in touch with a reseller (or do it yourself if you know modern, table-less CSS/HTML design) who can get you a fantastic look and feel.

    Again, the hardest part of any online community is enabling people to create compelling content constantly. Based on our experience, you really need a "conversation coordinator"/"site dad/site mom" who administers the site on a daily basis (watching for spam and other objectionable content) and fosters and nurtures the community and helps out beginners. This person doesn't have to be technical; he or she just has to know how to build community and how to use Bryght. Again, contact us if you need to find somebody like this but really it would be best if this person was a member of the community you are covering and not an outsider.

    Only use the admin user id for emergencies, create an alternate id for normal administration

    April 1, 2005 - 15:42

    Why use an alternate admin id rather than than admin?

    In order to have a way to recover in case of emergency. For example, if you are writing a new theme, it is possible to have an error in the theme that causes the site NOT to render. (Newer sites can only customize the CSS of a theme, but this recommendation still holds.) In this case, if you are using an alternate admin id and the primary administrator account is using a working theme (which is what you should do!), you can just login in as admin and fix up things there.

    How to create an alternate admin id

    1. Create a role, called e.g. 'site admin' that has all permissions. Remember that any time you enable a new module you must add permissions for that module to this role.
    2. Create a new username under Administer » User management » Users and assign it the new role.
    3. And use this username for all site administration. Only use the primary admin id in emergencies and never set the admin id to a theme that is being developed and debugged.
    Categories:

    Converting a CSS/HTML design to PHPTemplate - An Introduction

    March 24, 2005 - 11:32

    Introduction

    This is an introduction on how to convert a modern CSS/HTML design to PHPTemplate, the Bryght template language (In addition to PHPTemplate, Drupal has lots of other templating languages; Bryght only offers PHPTemplate because we think it is the most flexible and the best and of course, a Bryght guy :-) wrote it!). It is an introduction and it is therefore not exhaustive in its treatment of PHPTemplate. But, together with the the official PHPTemplate documentation, you should have enough information to convert basic CSS/HTML designs to PHPTemplate and after reading this, you should have a solid foundation for more advanced conversions.

    Click on "read more" for the full details!

    Categories:
    Syndicate content
    Creative Commons License

    This work is licensed under a Creative Commons Attribution-Share Alike 2.5 License. This license applies to all text written by Bryght. All others retain full copyright to their text.