<?xml version="1.0" encoding="UTF-8"?>

<rss version='2.0' 
     xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
     xmlns:doap="http://usefulinc.com/ns/doap#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

    <channel>
        <!-- This XML Feed shows details for the page Referendum 
             and everything recently tagged Referendum -->
        <creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/
          </creativeCommons:license>
        <title>Referendum on SWiK</title>
        <doap:name>Referendum</doap:name>
        <doap:description>&lt;p&gt;Referendum is a project to allow for community initiatives, allowing people to raise issues and vote on them. &lt;a rel="nofollow" href="http://sandbox.sourcelabs.com/referendum/"&gt;&lt;img src="http://sandbox.sourcelabs.com/referendum/reflogo.png" alt/&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Referendum is written in &lt;a class="wikilink" href="http://swik.net/PHP"&gt;&lt;span class="caps"&gt;PHP&lt;/span&gt;&lt;/a&gt; and requires &lt;a class="wikilink" href="http://swik.net/Ajax"&gt;Ajax&lt;/a&gt; capable &lt;a class="wikilink" href="http://swik.net/web-browser"&gt;web browser&lt;/a&gt; for voting.&lt;/p&gt;


	&lt;p&gt;Referendum uses the &lt;a class="wikilink" href="http://swik.net/Microformats"&gt;Microformats&lt;/a&gt; concept of &amp;#8216;vote-links&amp;#8217;. For more information on this, see the &lt;a rel="nofollow" href="http://microformats.org/wiki/vote-links"&gt;Microformats Wiki&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;To activate a new vote &amp;#8211; you must create and follow a link to your issue, preferrably on a page where people might discuss the issue at length, for example on your blog.&lt;/p&gt;
</doap:description>
        <description>Referendum is a project to allow for community initiatives, allowing people to raise issues and vote on them. 


	Referendum is written in PHP and requires Ajax capable web browser for voting.


	Referendum uses the Microformats concept of &amp;#8216;vote-links&amp;#8217;. For more information on this, see the Microformats Wiki.


	To activate a new vote &amp;#8211; you must create and follow a link to your issue, preferrably on a page where people might discuss the issue at length, for example on your blog</description> 
	  <!-- see doap:description for full description -->
        <link>http://swik.net/Referendum</link>
        <doap:homepage>http://sandbox.sourcelabs.com/referendum/</doap:homepage>
                <category>Ajax</category>
        <category>Referendum</category>
        <category>Ballots</category>
        <category>Voting</category>
        <category>License:GPL</category>
        <category>user:alex</category>
        <category>php5</category>
        <category>community</category>
        <category>PHP</category>
        <category>Microformats</category>

        <pubDate>Mon, 27 Feb 2006 11:57:41 -0800</pubDate>
        <lastBuildDate>Thu, 07 Jun 2007 18:38:44 -0700</lastBuildDate>
            
        <item>
            <title>Making Microformats Matter</title>
            <link>http://swik.net/User:alex/Alex+Bosworth%27s+Weblog/Making+Microformats+Matter/cbdj</link>
            <description>&lt;p&gt;The idea of &lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/Microformats&quot;&gt;Microformats&lt;/a&gt; is a cool concept for the &lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/web&quot;&gt;web&lt;/a&gt;, involving adding simple markup to html to highlight metadata about the displayed content. But like any standard, without a killer application microformats are under-utilized. The problem is a classic bootstrapping dilemma. Why should I add markup if there is no application that uses the markup? Why should I code an application that parses markup if there is no content that includes it? The solution lies on small leaps of faith by both sides.&lt;/p&gt;


	&lt;p&gt;Fortunately, &lt;a href=&quot;http://en.wikipedia.org/wiki/Microformats&quot;&gt;Microformats&lt;/a&gt; make marking up data really easy, so making a committment to Microformats on the content side is as simple as appending a string. And parsing Microformats isn&amp;#8217;t harder than parsing anything else in &lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/XML&quot;&gt;&lt;span class=&quot;caps&quot;&gt;XML&lt;/span&gt;&lt;/a&gt;/&lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/HTML&quot;&gt;&lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt;&lt;/a&gt; (or &lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/RSS&quot;&gt;&lt;span class=&quot;caps&quot;&gt;RSS&lt;/span&gt;&lt;/a&gt;). The key is just small easy steps to make these formats matter.&lt;/p&gt;


	&lt;p&gt;Probably the biggest success of Microformats has come from their biggest champion: Technorati. Technorati has seen a huge upsurge in traffic and in-bound link from supporting the &amp;#8216;rel-tag&amp;#8217; format &amp;#8211; but they additionally have done quite &lt;a href=&quot;http://microformats.org/wiki/implementations#Technorati&quot;&gt;a lot to support&lt;/a&gt; the &amp;#8216;vote-links&amp;#8217;, &amp;#8216;rel-nofollow&amp;#8217;, &amp;#8216;rel-tag&amp;#8217;, &amp;#8216;hCard&amp;#8217;, and &amp;#8216;hReview&amp;#8217; formats.&lt;/p&gt;


	&lt;p&gt;Recently, another startup from &lt;a href=&quot;http://techcrunch.com&quot;&gt;TechCrunch&lt;/a&gt; author Michael Arrington launched called &amp;#8216;&lt;a href=&quot;http://edgeio.com&quot;&gt;Edgeio&lt;/a&gt;&amp;#8217; that uses a simple microformat like model &amp;#8211; whatever is tagged &amp;#8216;listing&amp;#8217; is aggregated and integrated into a classified market display.&lt;/p&gt;


	&lt;p&gt;The concept is quite similar to Technorati, except with a vertical concentration on creating a marketplace around a tag. I see now why Arrington &lt;a href=&quot;http://www.techcrunch.com/2006/01/10/1000tags-another-simple-brilliant-idea/&quot;&gt;was so bullish on the idea&lt;/a&gt; of a &amp;#8216;million dollar tag page&amp;#8217;.&lt;/p&gt;


	&lt;p&gt;At MashupCamp, an idea that came up in discussions with the guys from &lt;a href=&quot;http://wsfinder.jot.com&quot;&gt;Webservice Finder&lt;/a&gt; and &lt;a href=&quot;http://programmableweb.com/&quot;&gt;Programmable Web&lt;/a&gt; was the idea that webservices ought to be discoverable through simple metadata as well. So far we&amp;#8217;ve been thinking that it would be nice if you could declare webservice access through your rss feed. We made up some fields: (Title, Keywords, Free/Pay/Non-Commercial, Description, &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt;) &amp;#8211; but if we wanted it to work, it&amp;#8217;s clear that there would be a lot of bootstrapping before we had both tools to parse &lt;span class=&quot;caps&quot;&gt;RSS&lt;/span&gt; feeds for webservice declarations and people marking up their webservices for discovery in their feeds.&lt;/p&gt;


	&lt;p&gt;I think it&amp;#8217;s best if this occurs naturally and isn&amp;#8217;t forced, which is why I actually like Edgeio&amp;#8217;s approach of &amp;#8216;just tag it listing&amp;#8217;. This puts the onus of intelligence on Edgeio, but it&amp;#8217;s a solvable problem, and Edgeio can get started by just aggregating anything that&amp;#8217;s naturally tagged &amp;#8216;listing&amp;#8217;. Even if they&amp;#8217;re wrong sometimes, it&amp;#8217;s the web, some sloppyness is forgivable.&lt;/p&gt;


	&lt;p&gt;This weekend I rolled up a new open-source Microformats supporting project called &lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/Referendum&quot;&gt;Referendum&lt;/a&gt;. It&amp;#8217;s a way to create community ballots for people to create issues and vote on them. I incorporated the micro-format &amp;#8216;vote-links&amp;#8217; as a lightweight spam prevention method. If you want to start a new issue, you have to create a link to the issue with an attribute &amp;#8216;rev=&amp;#8217;vote-for&amp;#8217;&amp;#8217; on the anchor tag along with the href.&lt;/p&gt;


	&lt;p&gt;I created Referendum because sometimes you want a channel for people to give simple feedback on issues, and I wanted a way to do voting that incorporated &lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/Ajax&quot;&gt;Ajax&lt;/a&gt;, because things like voting are a lot easier on the user when you use Ajax to submit the data.&lt;/p&gt;


	&lt;p&gt;You can check out &lt;a href=&quot;http://sandbox.sourcelabs.com/referendum&quot;&gt;Referendum here&lt;/a&gt;, or see the &lt;a href=&quot;http://swik.net/Referendum&quot;&gt;wiki on SWiK.net&lt;/a&gt; for more details about the project and the source code as well.&lt;/p&gt;
</description>
            
            <pubDate>Mon, 27 Feb 2006 15:22:07 -0800</pubDate>
        </item>
            
        <item>
            <title>Feature Ideas</title>
            <link>http://swik.net/Referendum/Feature+Ideas</link>
            <description>&lt;p&gt;Discuss Feature Ideas Here.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/RSS&quot;&gt;&lt;span class=&quot;caps&quot;&gt;RSS&lt;/span&gt;&lt;/a&gt; Feeds for ballots: &lt;a rev=&#039;vote_for&#039; href=&#039;http://sandbox.sourcelabs.com/referendum/index.php?ballot=1&amp;#38;issue=2#forIssue2&#039;&gt;&lt;img src=&#039;http://sandbox.sourcelabs.com/referendum/voteyes.png&#039;&gt;&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;This is a top priority and should be in soon &amp;#8211; &lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/User:alex&quot;&gt;alex&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
		&lt;li&gt;Add &lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/CSS&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt;&lt;/a&gt; Templates &amp;#8211; let users pick from &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; templates when creating new ballots.&lt;/li&gt;
		&lt;li&gt;&lt;del&gt;Allow deletion of issues&lt;/del&gt; done&lt;/li&gt;
	&lt;/ul&gt;
</description>
                        <category>Referendum</category>
            <category>Feature-Requests</category>

            <pubDate>Mon, 27 Feb 2006 13:06:30 -0800</pubDate>
        </item>
            
        <item>
            <title>About Referendum</title>
            <link>http://swik.net/Referendum/About+Referendum</link>
            <description>&lt;p&gt;&lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/Referendum&quot;&gt;Referendum&lt;/a&gt; is an issue voting system.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a rel=&#039;nofollow&#039; href=&quot;http://sandbox.sourcelabs.com/referendum/index.phps&quot;&gt;Referendum source code&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Essentially Referendum is a simple &lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/CRUD&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CRUD&lt;/span&gt;&lt;/a&gt; application, users insert votes, issues and ballots, and then read them out in tables.&lt;/p&gt;


	&lt;h1&gt;Ajax Voting&lt;/h1&gt;


The &lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/Ajax&quot;&gt;Ajax&lt;/a&gt; voting system works like this:
	&lt;ol&gt;
	&lt;li&gt;User clicks on a vote
	&lt;ol&gt;
	&lt;li&gt;Ajax fires off a request&lt;/li&gt;
		&lt;li&gt;Vote class is set to pending&lt;/li&gt;
	&lt;/ol&gt;
	&lt;/li&gt;
		&lt;li&gt;Server receives request
	&lt;ol&gt;
	&lt;li&gt;Server deletes all votes for the issue from the user&amp;#8217;s IP&lt;/li&gt;
		&lt;li&gt;A new vote is inserted&lt;/li&gt;
		&lt;li&gt;The current tally of votes for the issue is selected from the &lt;a class=&quot;wikilink&quot; href=&quot;http://swik.net/database&quot;&gt;database&lt;/a&gt; and returned.&lt;/li&gt;
	&lt;/ol&gt;
	&lt;/li&gt;
		&lt;li&gt;Client receives response &amp;#8211; including the tally and the id of the issue.
	&lt;ol&gt;
	&lt;li&gt;Vote tally is updated&lt;/li&gt;
		&lt;li&gt;User&amp;#8217;s vote is set to selected&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;/ol&gt;


	&lt;h1&gt;Database Schema&lt;/h1&gt;


&lt;pre&gt;
&lt;code&gt;

-- Database: `referendum`
-- 

-- --------------------------------------------------------

-- 
-- Table structure for table `ballots`
-- 

CREATE TABLE `ballots` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) collate utf8_unicode_ci NOT NULL default &#039;&#039;,
  `description` text collate utf8_unicode_ci NOT NULL,
  `created` datetime NOT NULL default &#039;0000-00-00 00:00:00&#039;,
  `updated` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `password` varchar(32) collate utf8_unicode_ci NOT NULL default &#039;&#039;,
  `css` text collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `created` (`created`,`updated`),
  FULLTEXT KEY `description` (`description`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;

-- --------------------------------------------------------

-- 
-- Table structure for table `issues`
-- 

CREATE TABLE `issues` (
  `id` int(11) NOT NULL auto_increment,
  `ballot_id` int(11) NOT NULL default &#039;0&#039;,
  `title` varchar(255) collate utf8_unicode_ci NOT NULL default &#039;&#039;,
  `description` text collate utf8_unicode_ci NOT NULL,
  `created` datetime NOT NULL default &#039;0000-00-00 00:00:00&#039;,
  `name` varchar(255) collate utf8_unicode_ci NOT NULL default &#039;&#039;,
  `ip` int(4) NOT NULL default &#039;0&#039;,
  `link` text collate utf8_unicode_ci NOT NULL,
  `approved` tinyint(1) NOT NULL default &#039;0&#039;,
  `homepage` text collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `ballot_id` (`ballot_id`),
  KEY `approved` (`approved`),
  FULLTEXT KEY `description` (`description`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;

-- --------------------------------------------------------

-- 
-- Table structure for table `votes`
-- 

CREATE TABLE `votes` (
  `id` int(11) NOT NULL auto_increment,
  `issue_id` int(11) NOT NULL default &#039;0&#039;,
  `ip` int(4) NOT NULL default &#039;0&#039;,
  `vote` tinyint(1) NOT NULL default &#039;0&#039;,
  `time` timestamp NOT NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`),
  KEY `ballot_id` (`issue_id`,`ip`,`vote`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=70 ;
&lt;/code&gt;
&lt;/pre&gt;

	&lt;h1&gt;Images&lt;/h1&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a rel=&#039;nofollow&#039; href=&quot;http://famfamfam.com&quot;&gt;famfamfam&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
</description>
                        <category>Documentation</category>
            <category>Referendum</category>

            <pubDate>Mon, 27 Feb 2006 13:04:58 -0800</pubDate>
        </item>
                </channel>
</rss>
