Feingold08 > RussForge



Welcome to RussForge

What is RussForge?

Put simply, it's a place to build and make available resources promoting a presidential run by Senator Russ Feingold of Wisconsin.

A strength of this site is the ability to share works-in-progress, and work collaboratively with other members of a like-minded community. Have an idea? Make it a reality here, and make it available to all Feingold supporters.

The initial goals of the project are as follows:

  1. Make resources (programs, images, scripts, templates, animations, knowledge-bases, etc.) freely available to support the "50 Blogs For Feingold" project.
  2. Make the same resources available to all Web users who support Feingold.
  3. Pursue the cross-use of these resources beyond the web: presentations, fliers, advertisments, signage, etc.
  4. Engage the creativity and energy of the Feingold movement to push the use of the Internet as a tool for political action.

Some Current Projects

Some Resources Currently Available at RussForge

The above image represents some of the resources available here at Week #3, including:

  • The Image Repository
  • The Russ '08 Powerpoint Presentation
  • The 50 Blogs Project Blog-Plugin
  • The Feingold '08 Menu-Plugin
  • Blog Templates
  • Feingold '08 News/Blog Post Aggregator
  • Feingold '08 E-mail List Aggregator

Have an idea? Join up. Here's how.

How does it work?

RussForge uses the SourceForge model for collaboration and publishing. SourceForge is a site with more than a million registered users and hundreds of thousands of projects. RussForge may be the first SourceForge project working to support a a political candidate.

The SourceForge model is based on a piece of software called CVS (Concurrent Versioning System) that allows many users to have a copy of the same materials on their own hard disk. By use of a "CVS Client" software, you can:

  • check out a copy of the "repository"
  • add files to the repository
  • make changes to files in the repository
  • check your changes into the repository so others can share them

We've written a getting started guide that walks you through the process of working with the repository, available in the "Getting Started" tab.

SourceForge also provides a wide variety of tracking and project management tools. You can explore some of these tools in the "Project Tools" menu to the left.

Using The Forge

Getting Started

Getting Started

Ready to get started? This page will walk you through the steps.

Get A SourceForge Account

The first step is to get a SourceForge account. It's free and easy, and takes about two minutes. You can get an account by clicking here.

Let a RussForge Administrator Know You Have Your Account

It's a good idea to start this step early, because it will take a while for us to get your e-mail and add you to the RussForge project. The e-mail can be as simple as "Please add me to the RussForge project, my username is Xydlfrak," or, if you want, you can tell us a little about yourself and your interests. Either way, shoot off an e-mail to tj_willis (at) sourceforge (dot) net.

Note that in some cases, you could be added to the project before your sourceforge e-mail address is active.

Get A CVS Client

A CVS Client allows you to interact with the repository. If you use UNIX, chances are it's already installed on your system. If you use a Macintosh, MacCVS is available here. If you use Microsoft Windows, I recommend TortoiseCVS, which is available here.

If you install TortoiseCVS, it will want you to reboot the computer afterwards. You might want to bookmark this page before you start the installation.

Set Up Your Client

Now that you have your CVS client, you need to tell it where the repository is. This is done by setting a variable called CVSROOT. Regardless of what kind of computer you use, you want your CVSROOT to looks something like this: :ext:YourName@cvs.sourceforge.net:/cvsroot/feingold08, where YourName is replaced by your SourceForge username.

Setting up on a Windows system using TortoiseCVS is particularly easy. Go down to the Windows "Start" menu and open up "My Computer." Then find a convenient folder like "My Documents." If you go to the "File Menu" there should be a menu item called "CVS Checkout." A program should pop up with some boxes to fill in. We have to fill in 5 of them, like this:

Protocol: Secure shell (:ext:)
Server: cvs.sourceforge.net
Repository folder: /cvsroot/feingold08
Username: TheSourceForgeUserNameYouMadeInStep1
Module: russforge

Setup Screen Capture

Now, up towards the top, there's a box labeled CVSROOT. It should be all filled out and read something like this :ext:YourName@cvs.sourceforge.net:/cvsroot/feingold08.

Check Out the Repository

In order to get the files onto your computer (to "check out the repository" in CVS parlance), you have to be a member of the project. You can check here to see if you've been added.

Assuming you're a project member and you have your CVS client all set up, the next step is to check out the repository. If you're following along with the TortoiseCVS setup, all you have to do is click the "OK" button from the previous step. You'll be prompted for your SourceForge password one or two times, and it will download the files into the directory you've selected.

Tortoise will tell you when all the files are downloaded. Click "OK" and take a minute to look around the files in the repository.

Modify A File

OK, so you've got a copy of the repository on your computer. Let's play with CVS for a couple of minutes to get used to how it works.

In the russforge directory, there should be a file called README.txt. Let's vandalize it!

Notice that the file has a green icon with a checkmark on it. That shows you that you haven't modified it. Open the file up in your favorite text editor and type something in. It doesn't matter what it is: something like "Hello world" will work fine.

Now save the file (as plain text), and take another look at the folder. The green logo with a checkmark should be replaced by an orange icon with an arrow. This indicates that you've modified the file. Now it's time to share your work with the world.

A Modified File

If you right-click on the icon, a menu with a bunch of different options should show up. Look for one that says "CVS Commit" and click it. CVS Commit Dialog. A dialog should pop up asking you for a cooment. This is an opportunity for you to describe the changes you made. When you're satisfied, click "OK." Tortoise will upload the file to the repository, and probably ask you for your password. When everything is done, README.txt will have a green checkmark icon again.

Adding a New File

There should be a directory named "misc" in your russforge directory. Let's go there and add a new file. It can be any kind of file. You can copy one in from some other directory on your computer or save a new file from your text editor there. Notice that its icon has a blue question mark, indicating that it hasn't been added to the repository yet.

A File That Isn't In The Repository

Now, right-click on the file just like you did before, and there should be an option called "CVS Add." Choose that and click "OK." You'll get a notice that you need to do a "CVS Commit" to add the file permanently. Also, notice that there's an orange plus-sign icon on the file. This means that it's been added, but not committed.

A File That Is Added But Not Committed

So, let's commit the file. Right-click on it and click "CVS Commit." Just like your commit in the previous section, you'll be asked to make a comment about what you're doing and asked for your password. The file will be uploaded to the repository, and when everything is done, the file will have the familiar green checkmark icon.

Deleting A File

You can use the "CVS Delete" menu item to delete a file. Notice that, as when adding a file, you have to do a commit to make the delete permanent.

Updating Your Local Repository

What happens when someone else updates a file? Do you automatically get their updates? The answer is yes and no.

To get an update, you have to tell CVS you want one. Go up to the russforge directory and right-click (not on a file this time). If this doesn't make any sense, just go up to the "File" menu. You should see an option called "CVS Update." When you click that, you'll be asked for your password, and any new files will be patched into your local copy of the repository.

Advanced Topics

It's a good idea to do commits and updates regularly. This minimizes the chances of a "collision" where two users make conflicting changes to the same part of a file. With frequent commits and updates, this almost never happens.

If you get tired of typing in your password all the time, you can create a digital signature key for your computer. Information on how to do that is available here.

Everything you ever wanted to know about CVS is available at Sourceforge and here.


Current Projects: Overview

What's Shakin' At RussForge

The "Projects" menu to the left has a list of projects currently in the development pipeline. Click it open to take a closer look.

You can also surf the repository for the most up-to-date look at the goodies.

Current Projects: The FireFox Extension


Firefox Menu

This extension to the FireFox browser contains links to approximately 70 web resources of interest to the Feingold For President Movement. These resources include "the National "Russ Cafe" discussion board, the chat room at russforpresident.com, prepackaged searches through many of the leading search engines, all the blogs in the "50 Blogs for Feingold" program, as well as Feingold's official Senate, Senate Campaign, and PAC.

This extension only works with the Mozilla FireFox browser. That is to say that it won't work with Microsoft Internet Explorer or any other Netscape browser. You can get the FireFox browser for free by clicking here.

The source code is posted at RussForge.

Surf the repository for more goodies.

Downloading and Installation

There are versions of this extension available directly at RussForge, but they require a special installation procedure to install. The option of downloading from RussForge is open to everyone, but it's much easier to download and install directly from https://addons.mozilla.org/firefox/2447/.

Simply click the "Install Now" button on that page to install. Then, when you restart FireFox, the menu should appear in the main menubar, next to the "Help" menu. If you still don't see it, you can hold down the "Alt" key and press "8" to pop open the menu.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Current Projects: The Quote Widget


Several of the more advanced pro-Feingold blogs have widgets that will display random quotes by or about Russ every time a page is visited. This widget gives that same functionality to blogs that don't have an advanced Content Management System or PHP backends.

This project provided a number of challenges, including:

  • it should be easy to add to a blog
  • the appearance should be highly configurable
  • it should show something reasonable to visitors that don't have JavaScript activated

As of this version, we believe that all these challenges have been met.

The idea is to add one or more of these elements to your page (for example, in your template)

  • <span id="quote_text"></span>
  • <span id="quote_by"></span>,
  • <span id="quote_about"></span>.
  • <span id="quote_link"></span>,
  • <span id="quote_date"</span>

And then to call the following JavaScript which will put the appropriate text into the spans:

<script type="text/javascript" src="http://feingold08.sf.net/apps/feingold-quotes.js"></script>
<script type="text/javascript" >

For example, you could lay out the spans like this:

<i><span id="quote_text">"It's time to stand up - not to cheer, but to fight back."</span></i><br/>
--<span id="quote_by">Senator Russ Feingold</span>,
<span id="quote_about">On Executive Power</span>.
(<span id="quote_link"><a href="http://www.dailykos.com/storyonly/2006/2/2/10581/84829">Daily Kos</a></span>,
<span id="quote_date">2006-02-02</span>)

And the result would look like this:

"It's time to stand up - not to cheer, but to fight back."
--Senator Russ Feingold, On Executive Power. (Daily Kos, 2006-02-02)

Note that in the above example, we put stuff in between the span tags. This provides a default quote to visitors that don't hava JavaScript support in their browsers.

You can change the appearance of any of the spans in a number of ways, from defining CSS elements for them to wrapping the spans in normal HTML tags (like the italics tag above). Check out the example page in the repository for a concrete example.

Surf the repository for more goodies.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Current Projects: The Interactive Map Widget


This widget is an interactive map that can help users find their state blogs and e-mail lists. If the state blog doesn't exist yet, it gives some pointers on how to start one up. It's a combination of the current State Blogs Widget and the Google Maps API.

Everyone is welcome to use this widget, and the source code is available in the public CVS repository. One easy way to incorporate this widget into your site is to copy this HTML into your site:

<iframe src="http://feingold08.sourceforge.net/apps/50blogs-map-small.html" width="440px" height="310px">
<a href="http://feingold08.sourceforge.net/apps/50blogs-map.html" target="50blogsmap"><img src="http://feingold08.sourceforge.net/apps/50blogs-map-big.jpg" alt="Picture of 50 States Map Widget" height="225" width="400" /></a>

Which puts a small version of the interactive map on your page, giving the user the option to open a larger version of the map.

Questions, comments, feature requests, and bug reports are welcomed.

Surf the repository for more goodies.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Current Projects: The 50 Blogs Widget


50 Blogs Widget

Based on this thread started by gdennis at the Russ Cafe, I wrote the widget pictured to the right.

The purpose is threefold:

  • Get out the word on the state blogs,
  • Get out the word on the mailing lists, and
  • Facilitate identifying and starting new state blogs

The widget is easy to install, simply put the following code on your page:

<script type="text/javascript" src="http://feingold08.sourceforge.net/apps/50blogs-form.js">

Then somewhere after that, put in the following lines:

var selectBox = document.forms["50blogs"].elements["state"];//state;

You can change the state you want displayed first by changing the selectedIndex. Also, you have full control over how the widget looks by use of CSS. An example is posted at RussForge.

Surf the repository for more goodies.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Current Projects: News/Blog Aggregator


It's never too early for name- and face-recognition, right?

I wrote a Web-sticker/News Aggregator for use on sites that support Senator Feingold as a presidential candidate in 2008. It's that thingie on the left wih his picture on it. It's free, no ads (except a "get this for your site" link) and no cookies. You can add it to your site with one line of JavaScript:

<SCRIPT language="JavaScript" src="http://headstrong-america.org/mag/russ.php?nitems=10&bitems=10" type="text/javascript"></SCRIPT>

You can change the number of news items and blog items with the nitems and bitems values. Also, you can change the colors, borders, fonts, and so forth by defining CSS attributes for .russ_box, .russ_header, and .russ_item. See this example for more information on customizing the widget.

News/Blog Aggregator

Surf the repository for more goodies.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Current Projects: E-Mail Aggregator

The E-Mail Aggregator

This widget lets you syndicate the most recent posts from the feingold08 mailing list onto your site with one line of html. The posts are presented at list items, which you can format to your tastes using CSS.

E-Mail List Aggregator

For more information, see this example.

Surf the repository for more goodies.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Current Projects:Image Repository

The Image Repository

This is a place where we can share image which can be used in a wide variety of ways. Feel free to use any image in the repository. If you have images you contribute so that others can use them, this is the place.

The Image Repository

Surf the repository for more goodies.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Current Projects:Presentations

Feingold Presentations

PowerPoint style presentations can be of great use in getting the word out. Whether they're actually used as presentations, as pamphlets, or whatever, it's a good way of combining multimedia into a structured document.

An introductory presentation, pictured below is in development. It could use some tender loving care while it's dad is preoccupied with techie concerns. It'd be a great place to start working in RussForge.

Don't have PowerPoint? Check out Sun Microsystems' free Microsoft Office work-alike suite OpenOffice. The OpenOffice Impress program allows you to edit PowerPoint presentations. You can get the free, no-hassle download for MicroSoft Windows, Max OSX, and a number of Unixes at OpenOffice.org.

The Feingold '08 Presentation

Surf the repository for more goodies.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Current Projects: Blog Templates


There are a couple of Blogger Templates in the repository that you can use as a starting point if you're considering starting a new Feingold state blog. They do require some customization, but are probably easier than starting from scratch.

Take a look in the blog section of the repository to see what's currently available and look for more goodies.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Current Projects: U.S.A. For Feingold Blogroll


This widget is a little JavaScript to keep your list of links to other "50 Blogs" sites up to date. Appearance (fonts, colors, size, etc..) is customizable by defining the Cascading Style Sheet Classes "blogroll-title" and "blogroll-item." There is a full example in the CVS repository under blog/apps/blogroll.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Current Projects:

Getting Started

RSS is new-ish technology that is particularly helpful with the kind of work we're doing in the RussForPresident movement. It is used in several of the widgets available on this site.

But there are other important uses. First off, there's the new Feingold State Sites feed. It combines posts from all the state blogs, sorts them by date, and can be plugged into the feed reader of your choice.

For example, here are three quick ways to take advantage of the feed right away:

altAdd to GoogleAdd to My AOL

If you're looking for a more powerful tool, you can get a desktop RSS reader. A good free one is RSSOwl and a good not-so-free one is FeedDemon. Tools like these can import a bunch of feeds at once in a OPML file. I wrote Feingold.opml and popped it up for anyone who wants to use it.

Feeds With RSSOwl

Surf the repository for more goodies.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Current Projects: JavaScript Menu Widget

JavaScript Menu Widget

This widget is not 100% functional yet. It is still in development.

Menu Image

When finished, this widget will allow you to incorporate a highly functional and configurable menu in your site with one line of HTML.

Surf the repository for more goodies.

Your Feedback

Here are some of the places that you can share your ideas about this and other RussForge tools with the developers:

Project Tools

For Bloggers

Information For Bloggers And Prospective Bloggers

About this Document

This document provides hints, tips, and suggestions for state bloggers. It is skewed towards blogs run at blogger.com.

Questions, comments, suggestions? Feel free to post in the discussion forums.

A Little About Blogger.com

Posts and Templates

http://www.blogger.com provides free blog hosting with a number of amenities. Most of the Feingold State blogs are run at the blogger.com server. Therefore, while other blog hosts exist, and each host has its own merits, this document is primarily focused on using the blogger.com system.

Blogger combines posts with templates to create a website. A post (or posting or article) is mostly text with a little HTML. To make things easier, Blogger provides a what-you-see-is-what-you-get editor, so you don't really need to know HTML to edit posts.

Most of the blog's appearance is controlled by a template. This controls things like colors, fonts, what's in your sidebars, and stuff that looks more or less the same on every page of your blog. It's mostly HTML with some extra tokens.

A good source of information is the Blogger Help Site.

Starting A Blog At Blogger.com
Step 0: Preliminaries

Setting up a state blog is pretty easy. Before you start, you should check to make sure that nobody's started one for your state. If a blog already exists for your state, you'll almost certainly be more than welcome to contribute. If not, take a deep breath. You can have a functioning blog in about the time it takes to have a pizza delivered.

If you run into problems, we can help you out. Feel free to post in the discussion forums or e-mail an administrator.

Step 1: Go To http://www.blogger.com

Point your browser to http://www.blogger.com and you'll see a screen like this:

Step 1

Click the big orange arrow to "Create a Blog Now."

Step 2: Name Your Blog

Now you have the opportunity to name your blog and create the web address. The title should be descriptive, like "Florida for Russ Feingold" and the blog address should be relatively short and easy to remember, like "fl4russ." The word verification is simply there to make sure that you're not a robot.

Step 2

Click the big orange arrow when you're satisfied.

Step 3: Choose a Template

The template you choose determines your blog's appearance. Now, you have a decision to make. Do you want to use one of these templates or one of the Russified templates available here at RussForge. The choice is totally up to you and can be changed later.

At this point, you have to select one of the choices Blogger gives you to continue. If you want to use a Russ-specific template, you can do that later.

Step 3

When you're satisfied with your choice, click the big orange arrow.

Step 4: Congrats! Your blog is created.

At this point, you should get a page that tells you that your blog has been created. If not, there will be easy-to-understand instructions to fix up any unresolved issues.

Step 4

Click the big orange arrow to "Start Posting."

Step 5: Put Up Your First Article

To complete the process, you have to put in at least one post. It doesn't have to be the "Great American Novel." When I set up a new blog, my first title is usually "Placeholder" and the text is something like "This is a placeholder post. Check back soon." You can delete this post later, so the content isn't very important.

Step 5

If you really want to, you can put in a substantial post in now, it's up to you.

When you're satisfied, click the orange button to "Publish Posts."

Step 6: Publish Your Blog

I don't have a screenshot of this step yet, but you want to hit the "Publish Entire Site" button.

Step 7: (Optional) Paste in a RussForge Template

See the 4 tabs up towards the top of the screen? They're labelled "Posting," "Settings," "Template" and "View Blog." Click on the "Template" tab and you'll see a screen like this:

Step 1

Now, you want to get rid of the stuff in the template and replace it with the RussForge template. Here are the steps:

  • Cut out all the whole existing template and replace it with this file.
  • Look for "XXXX" in the template and replace it with your state name (i.e. "Florida")
  • Click "Save Template Changes"
  • Click the "Republish Entire Blog" link

As time goes by, you'll feel a strong urge to tweak the template. Submit to the urge. Make sure to take advantage of the "Preview Changes" feature and consider copying your template into a file on your computer. That way, if you mess something up, you can always paste in a good, backup template.

Step 7: (Optional) Some Additional Useful Tweaks

Here are some useful tweaks to help you get the most out of your new blog:

  1. If you're using a RussForge template, the blue NavBar at the top of your blog probably clashes with your page. Here's how to fix it: go to "Template" tab, find "Change the Blogger NavBar" and set it to silver. Save Template Changes. Republish.
  2. Blog descriptions are used by a number of search engines. To snazz up your description, go to Settings tab, in the "Basic" area. Add a description.
  3. Want to allow users to be able to e-mail your posts to their friends? In this "Basic" area of the Settings, Set "Show Email Post links" to Yes.
  4. Before you leave the "Basic" area, make sure to click "Save Settings."
  5. The easiest way to lure more visitors to your blog: go to Settings tab, in the "Publishing" area. Set "Notify Weblogs.com" to "Yes." (Make sure to "Save Settings."

Using SiteMeter.com to Track Visits

Some Sitemeter Images

What's the purpose of writing stuff if nobody reads it? Part of the game of blogging is knowing how many people are reading your blog and working to "grow" your blog: attracting readers and building a community of regular visitorys.

sitemeter.com offers a free visitor tracking system that is widely used by lefty blogs such as DailyKos, MyDD, and the wildly successful and well-respected Ohio For Russ Feingold.

Here are some of sitemeter's features:

  • visitor's city and state (sometimes inaccurate)
  • what pages have been visited
  • how people found your site (referers)
  • daily, weekly, monthly, and yearly graphs showing number of visits
  • "outlinks," i.e., links on your blog that people clicked

Registering is easy, and it walks you through the setup process. You have to put a couple of lines of code in your blog template for it to kick in.

Blog Directories and Search Engines

We learned in the previous section how to interpret how many people are visiting your blog and how they're using it. In this section, we'll look at the basic strategy for growing the blog. It all boils down to this: write interesting stuff and make sure blog directories and search engines index it.

Probably the easiest, most important thing you can do to get your blog on search engines is to follow this procedure. After your blog has been up for more than 60 days, make sure to register at leftyblogs. There are a ton of other blog search engines you can play with as time permits.

RSS: Fun With Feeds

There's a lot to say about the power of syndicating your site with RSS Feeds. Most blog servers, including blogger.com take care of creating the feed for you. But you still have to get it out there for people to use. Perhaps the best way of exploring the subject is to go to feedburner.com, burn your feed and play with the various tools they provide. After you "burn" your feed, make sure to click the "publicize" tab, particularly the "pingshot," "feedcount" and "chicklet chooser" items.

If you use Blogger, your feed will be available at http://yourblogname.blogspot.com/atom.xml. There's an option in the blog setup to turn off your feed, but it should be on by default.

Whole Site