<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Rough Book &#187; infusionsoft</title>
	<atom:link href="http://vivin.net/tag/infusionsoft/feed/" rel="self" type="application/rss+xml" />
	<link>http://vivin.net</link>
	<description>random musings of just another computer nerd</description>
	<lastBuildDate>Tue, 17 Jan 2012 23:32:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Generating API Documentation from XML using XSLT</title>
		<link>http://vivin.net/2011/07/09/generating-api-documentation-from-xml-using-xslt/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2011/07/09/generating-api-documentation-from-xml-using-xslt/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 18:39:04 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Nerdy Stuff]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSLT]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[infusionsoft]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=1748</guid>
		<description><![CDATA[I work at Infusionsoft, and we offer our customers API access. Visibility and access to the various tables and their fields is controlled by an XML file on our end. Naturally, our customers require user-friendly documentation that tells them what tables and fields they can access and in what manner. Previously, a former developer had [...]]]></description>
			<content:encoded><![CDATA[<p>I work at Infusionsoft, and we offer our customers API access. Visibility and access to the various tables and their fields is controlled by an XML file on our end. Naturally, our customers require user-friendly documentation that tells them what tables and fields they can access and in what manner. Previously, a former developer had written a maven goal that would generate the API documentation from the XML file. Unfortunately this was something that he did on his own and the code wasn&#8217;t in our subversion repository. When that developer left, we decided to take a look at the code to see if we could continue generating the documentation using the maven goal. We determined that the original solution though helpful, involved a lot of work in Java simply to generate API documentation. This was when I suggested using XSLT as it would be a remarkably lightweight solution and it is also perfectly suited to this task. My colleagues agreed and so I decided to go ahead with the task. There was one slight problem though. I had very little experience with XSLT! But how hard could it be? I love learning new things anyway!<br />
<span id="more-1748"></span><br />
As it turned out, it wasn&#8217;t all that hard (this doesn&#8217;t mean I am an expert; I&#8217;m still a novice!). I went through a few tutorials and examples and in about an hour or so I had a basic idea of the language (especially its functional aspect). It took me about a day to write out the entire XSLT document (tweaks and all). Most the time was spent looking up instructions in XSLT to do certain things (string operations, date formatting, etc.).</p>
<p>Here&#8217;s an example of what I had to work with, from the XML document (this is not the exact document; it&#8217;s just an example that follows the structure):</p>
<pre class="brush: xml">
&lt;tables&gt;
 &lt;table name=&quot;Contact&quot; access=&quot;EDAR&quot;&gt;
  &lt;fields&gt;
   &lt;field name=&quot;FirstName&quot; /&gt;
   &lt;field name=&quot;LastName&quot; /&gt;
   ...
   &lt;field name=&quot;LastUpdated&quot; type=&quot;DateTime&quot; access=&quot;R&quot; /&gt;
  &lt;/fields&gt;
 &lt;/table&gt;
&lt;/tables&gt;
</pre>
<p>As you can see, the structure is pretty simple. As far as the resulting API documentation was concerned, what I wanted was an <span style="font-family:courier; font-weight:bold">index.html</span> that contained links to other pages. These other pages should be structured so that there is an HTML page for each table. This page will contain information about the table fields, as well as their access modes (E: Edit, D: Delete, A: Add, R: Read). As it turns out, in XSLT 1.0, you cannot create separate documents. You can only transform one document into another document. In XSLT 2.0 however, you can transform one document into multiple documents using the <span style="font-family:courier; font-weight:bold">xsl:result-document</span> instruction.</p>
<p>The XSLT that I&#8217;ve written is pretty straightforward (if you know XSLT; even if you don&#8217;t, you can kinda get the gist of it from the instructions). The only thing I had trouble with was translating the access-mode letters into their expanded forms. To do this, I had to write a recursive template that looks at each character (there are <a href="http://stackoverflow.com/questions/5628671/xslt-splitting-a-string-and-doing-something-with-each-character">other ways</a>). This is where the functional aspect of XSLT comes into play. Once I started thinking of XSLT like Lisp, it became much easier to write my solution because I wasn&#8217;t fighting the language. Anyway, here is my solution:</p>
<pre class="brush: xslt">
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;xsl:stylesheet version=&quot;2.0&quot;
                xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;

 &lt;!--
  XSLT document that transforms Infusionsoft&#039;s API Field-Access XML into HTML pages
  Author: Vivin Suresh Paliath
  Date: 4/11/2011
 --&gt;

 &lt;xsl:output method=&quot;text&quot; /&gt;
 &lt;xsl:output method=&quot;html&quot; indent=&quot;yes&quot; name=&quot;html&quot; /&gt;

 &lt;xsl:template name=&quot;translateAccessModes&quot;&gt;

  &lt;xsl:param name=&quot;accessModes&quot; /&gt;

  &lt;xsl:if test=&quot;string-length($accessModes) &gt; 0&quot;&gt;

   &lt;xsl:variable name=&quot;accessMode&quot; select=&quot;substring($accessModes, 1, 1)&quot; /&gt;
   &lt;xsl:choose&gt;
    &lt;xsl:when test=&quot;$accessMode=&#039;E&#039;&quot;&gt;Edit &lt;/xsl:when&gt;
    &lt;xsl:when test=&quot;$accessMode=&#039;D&#039;&quot;&gt;Delete &lt;/xsl:when&gt;
    &lt;xsl:when test=&quot;$accessMode=&#039;A&#039;&quot;&gt;Add &lt;/xsl:when&gt;
    &lt;xsl:when test=&quot;$accessMode=&#039;R&#039;&quot;&gt;Read &lt;/xsl:when&gt;
    &lt;xsl:otherwise&gt;Unrecognized Access Mode: &lt;xsl:value-of select=&quot;$accessMode&quot; /&gt; &lt;/xsl:otherwise&gt;
   &lt;/xsl:choose&gt;

   &lt;xsl:call-template name=&quot;translateAccessModes&quot;&gt;
    &lt;xsl:with-param name=&quot;accessModes&quot; select=&quot;substring($accessModes, 2, string-length($accessModes))&quot; /&gt;
   &lt;/xsl:call-template&gt;

  &lt;/xsl:if&gt;

 &lt;/xsl:template&gt;

 &lt;xsl:template match=&quot;/&quot;&gt;
  &lt;xsl:result-document href=&quot;tables/index.html&quot; format=&quot;html&quot;&gt;
   &lt;html&gt;
    &lt;xsl:comment&gt; Generated via XSLT on &lt;xsl:value-of select=&quot;format-dateTime(current-dateTime(), &#039;[F], [MNn] [D], [Y] at [h]:[m01] [P]&#039;)&quot; /&gt; &lt;/xsl:comment&gt;
    &lt;head&gt;
     &lt;title&gt;Infusionsoft Table-Access Documentation&lt;/title&gt;
     &lt;link rel=&quot;stylesheet&quot; href=&quot;styles.css&quot; /&gt;
    &lt;/head&gt;
    &lt;body&gt;
     &lt;h2&gt;Database Tables &amp;amp; Fields&lt;/h2&gt;
     &lt;div id=&quot;tables&quot;&gt;
      &lt;ul&gt;
       &lt;xsl:for-each select=&quot;//table&quot;&gt;
        &lt;xsl:variable name=&quot;filename&quot; select=&quot;concat(&#039;tables/&#039;, @name, &#039;.html&#039;)&quot; /&gt;
        &lt;xsl:variable name=&quot;tableAccessModes&quot;&gt;
         &lt;xsl:choose&gt;
          &lt;xsl:when test=&quot;@access!=&#039;&#039;&quot;&gt;
           &lt;xsl:call-template name=&quot;translateAccessModes&quot;&gt;
            &lt;xsl:with-param name=&quot;accessModes&quot; select=&quot;@access&quot; /&gt;
           &lt;/xsl:call-template&gt;
          &lt;/xsl:when&gt;
          &lt;xsl:otherwise&gt;Edit Delete Add Read&lt;/xsl:otherwise&gt;
         &lt;/xsl:choose&gt;
        &lt;/xsl:variable&gt;
        &lt;li&gt;
         &lt;xsl:element name=&quot;a&quot;&gt;
          &lt;xsl:attribute name=&quot;href&quot;&gt;&lt;xsl:value-of select=&quot;concat(@name, &#039;.html&#039;)&quot; /&gt;&lt;/xsl:attribute&gt;
          &lt;xsl:value-of select=&quot;@name&quot; /&gt;
         &lt;/xsl:element&gt;
        &lt;/li&gt;

        &lt;xsl:result-document href=&quot;{$filename}&quot; format=&quot;html&quot;&gt;
         &lt;html&gt;
          &lt;xsl:comment&gt; Generated via XSLT on &lt;xsl:value-of select=&quot;format-dateTime(current-dateTime(), &#039;[F], [MNn] [D], [Y] at [h]:[m01] [P]&#039;)&quot; /&gt; &lt;/xsl:comment&gt;
          &lt;head&gt;
           &lt;title&gt;&lt;xsl:value-of select=&quot;@name&quot; /&gt; Table (Access Modes: &lt;xsl:value-of select=&quot;substring($tableAccessModes, 1, string-length($tableAccessModes) - 1)&quot; /&gt;)&lt;/title&gt;
           &lt;link rel=&quot;stylesheet&quot; href=&quot;styles.css&quot; /&gt;
          &lt;/head&gt;
          &lt;body&gt;
           &lt;h2&gt;&lt;xsl:value-of select=&quot;@name&quot; /&gt;&lt;/h2&gt;
           &lt;table&gt;
            &lt;tr&gt;
             &lt;th&gt;Field Name&lt;/th&gt;
             &lt;th&gt;Type&lt;/th&gt;
             &lt;th&gt;Access&lt;/th&gt;
            &lt;/tr&gt;

            &lt;xsl:for-each select=&quot;./fields/field&quot;&gt;

             &lt;xsl:variable name=&quot;fieldType&quot;&gt;
              &lt;xsl:choose&gt;
               &lt;xsl:when test=&quot;@type!=&#039;&#039;&quot;&gt;&lt;xsl:value-of select=&quot;@type&quot; /&gt;&lt;/xsl:when&gt;
               &lt;xsl:otherwise&gt;String&lt;/xsl:otherwise&gt;
              &lt;/xsl:choose&gt;
             &lt;/xsl:variable&gt;

             &lt;xsl:variable name=&quot;accessModes&quot;&gt;
              &lt;xsl:choose&gt;
               &lt;xsl:when test=&quot;@access!=&#039;&#039;&quot;&gt;
                &lt;xsl:call-template name=&quot;translateAccessModes&quot;&gt;
                 &lt;xsl:with-param name=&quot;accessModes&quot; select=&quot;@access&quot; /&gt;
                &lt;/xsl:call-template&gt;
               &lt;/xsl:when&gt;
               &lt;xsl:otherwise&gt;&lt;xsl:value-of select=&quot;$tableAccessModes&quot; /&gt;&lt;/xsl:otherwise&gt;
              &lt;/xsl:choose&gt;
             &lt;/xsl:variable&gt;

             &lt;xsl:variable name=&quot;rowClass&quot;&gt;
              &lt;xsl:choose&gt;
               &lt;xsl:when test=&quot;(position() mod 2) = 0&quot;&gt;even&lt;/xsl:when&gt;
               &lt;xsl:otherwise&gt;odd&lt;/xsl:otherwise&gt;
              &lt;/xsl:choose&gt;
             &lt;/xsl:variable&gt;

             &lt;xsl:element name=&quot;tr&quot;&gt;
              &lt;xsl:attribute name=&quot;class&quot;&gt;&lt;xsl:value-of select=&quot;$rowClass&quot; /&gt;&lt;/xsl:attribute&gt;
              &lt;td&gt;&lt;xsl:value-of select=&quot;@name&quot; /&gt;&lt;/td&gt;
              &lt;td&gt;&lt;xsl:value-of select=&quot;$fieldType&quot; /&gt;&lt;/td&gt;
              &lt;td&gt;&lt;xsl:value-of select=&quot;$accessModes&quot; /&gt;&lt;/td&gt;
             &lt;/xsl:element&gt;
            &lt;/xsl:for-each&gt;

           &lt;/table&gt;

           &lt;h2&gt;&lt;a href = &quot;index.html&quot;&gt;Back to list of tables&lt;/a&gt;&lt;/h2&gt;

          &lt;/body&gt;
         &lt;/html&gt;
        &lt;/xsl:result-document&gt;

       &lt;/xsl:for-each&gt;
      &lt;/ul&gt;
     &lt;/div&gt;
    &lt;/body&gt;
   &lt;/html&gt;
  &lt;/xsl:result-document&gt;
 &lt;/xsl:template&gt;
&lt;/xsl:stylesheet&gt;
</pre>
<p>That&#8217;s all there is to it! To actually use the XSLT document to generate the API HTML files, I used <a href="http://saxon.sourceforge.net/saxon6.5.4/">Saxon</a>, which supports XSLT 2.0. This is how I used it:</p>
<pre class="brush: php">
java -cp saxon9he.jar net.sf.saxon.Transform -t -s:api_field_access.xml -xsl:api_doc.xslt
</pre>
<p>So if you&#8217;re an Infusionsoft customer or a developer who is reading the API documentation, you now know how it was generated!</p>
<br /><a href="http://vivin.net/?p=1748#comments" title="Comments on &quot;Generating API Documentation from XML using XSLT&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1748" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=1748&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2011/07/09/generating-api-documentation-from-xml-using-xslt/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1748" />
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?1748" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=1748&#38;type=feed" medium="image" />
	</item>
		<item>
		<title>Sorry for the delay</title>
		<link>http://vivin.net/2008/08/08/sorry-for-the-delay/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2008/08/08/sorry-for-the-delay/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 20:32:18 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Army]]></category>
		<category><![CDATA[Family and Friends]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Military]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[infusionsoft]]></category>
		<category><![CDATA[iraq]]></category>
		<category><![CDATA[parents]]></category>
		<category><![CDATA[war]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=386</guid>
		<description><![CDATA[I&#8217;m really sorry for not updating this journal for&#8230; well, seems like forever. I figured I&#8217;d start writing regularly but that turned out to not be the case. A few things got in my way. Ever since I started working at Infusionsoft, I&#8217;ve had less of a desire to come back home and sit at [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m really sorry for not updating this journal for&#8230; well, seems like forever. I figured I&#8217;d start writing regularly but that turned out to not be the case. A few things got in my way. Ever since I started working at <a target = "_blank" href = "http://infusionsoft.com">Infusionsoft</a>, I&#8217;ve had less of a desire to come back home and sit at the computer&#8230; again. The reason being, that most of my code-cravings are taken care of at work. Seriously, I love it. As a result I don&#8217;t really feel like coming back home and sitting in front of the computer. </p>
<p>The second thing was that my parents were here for a long time, and so I was spending most of my time with them. Then what else&#8230; oh yes, there was a thunderstorm and the power went out and my server decided that it didn&#8217;t recognize the NIC it had recognized for the past four years. So I went and bought a new one, and as soon as I plugged it in, it recognized the <em>old</em> one. I love computers. Then of course, there&#8217;s the fact that I was just pretty lazy. For some insane reason I decided that I wanted to upgrade the server to FreeBSD 7.0 and then I kinda just dragged my foot on setting everything else up. </p>
<p>Finally, there was my getting deployed again. Yeah, you read that right. I was going to Iraq&#8230; again. I pretty much found out about it around the time of my WLC training. So there was all the preparation for that. I really wasn&#8217;t looking forward to going (who does, anyway?) but I figured I had to (all that duty stuff, raising my right hand, taking the oath). However a few weeks ago I found out that I really didn&#8217;t have to go. As it turned out it hadn&#8217;t been two years since I got back and so I had the option of not going. So I told my readiness NCO that I didn&#8217;t want to go. I have my career to think of, and I think one tour in Iraq is more than enough. I was pretty torn when I had to make that decision. It took me about half a second to decide what I wanted to do. Part of me almost wanted to say &#8220;yes&#8221;. But I think this is the better decision.</p>
<p>Anyway, I just wanted to let you all know that I&#8217;m alive and that I&#8217;m definitely going to try and write more frequently on this journal. I&#8217;m doing a lot of exciting things at work and I&#8217;d like to be able to write about them. So, until next time&#8230;</p>
<br /><a href="http://vivin.net/?p=386#comments" title="Comments on &quot;Sorry for the delay&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?386" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=386&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2008/08/08/sorry-for-the-delay/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?386" />
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?386" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=386&#38;type=feed" medium="image" />
	</item>
		<item>
		<title>A lot of stuff</title>
		<link>http://vivin.net/2008/02/12/a-lot-of-stuff/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link>
		<comments>http://vivin.net/2008/02/12/a-lot-of-stuff/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 23:08:00 +0000</pubDate>
		<dc:creator>vivin</dc:creator>
				<category><![CDATA[Family and Friends]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Politics and Law]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[civil rights]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[employment]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[infusionsoft]]></category>
		<category><![CDATA[libertarianism]]></category>
		<category><![CDATA[parents]]></category>
		<category><![CDATA[pcbsd]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://vivin.net/?p=383</guid>
		<description><![CDATA[I didn&#8217;t update this site for a while because I had a lot of stuff going on. A lot happened towards the end of last year. My house was destroyed, and then it was rebuilt. While that was going on, I also lost my job when Intel decided to &#8220;redeploy&#8221; my entire group. I was [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t update this site for a while because I had a lot of stuff going on. A lot happened towards the end of last year. My house was <a target = "_blank" href = "http://vivin.net/2007/11/02/my-toilet-exploded-and-my-house-was-destroyed/">destroyed</a>, and then it was rebuilt. While that was going on, I also lost my job when <a target = "_blank" href = "http://intel.com">Intel</a> decided to &#8220;redeploy&#8221; my entire group. I was offered an option to look for positions within the company, but I declined. I honestly wasn&#8217;t doing as much programming as I would have liked, so I decided to look for jobs outside Intel. I interviewed with <a target = "_blank" href = "http://google.com">Google</a> and didn&#8217;t get in despite doing really well (their words) on the phone and in-person interviews. I got a call back from the recruiter who said that &#8220;although the interviewers really liked you and thought that you were incredibly smart and knowledgeable, they didn&#8217;t feel that your skills are a good match for the position&#8221;. I thought it was a standard &#8220;Thanks, but no thanks&#8221; response and I was a little disheartened. To be honest, my faith in my own skills and knowledge was a little shaken. I talk to my friend Iliyan (he works and google and he&#8217;s the one who actually referred me) and he said that they were actually telling the truth. Apparently, at Google they try to match you up pretty well with your job. If they feel that you don&#8217;t match up with the position, they don&#8217;t offer it. He said that if I had applied to Google and Mountain View, instead of Phoenix, I would have received an offer for sure. He also let them know that they made a mistake in not hiring me. Either way, I wasn&#8217;t all that depressed. </p>
<p>I got a few more offers and did a few more interviews before finally accepting a position at <a target = "_blank" href = "http://infusionsoft.com">Infusion Software</a>. They basically write CRM (Content and Resource Management) Software for small businesses. They are a relatively new company. I have been here for a month and I&#8217;ve been loving it since my first day. The first day I walked in, they basically said &#8220;Here&#8217;s your system. Pick an OS and install it and set up your development environment&#8221;. I was like &#8220;Awesome!&#8221;. Of course, I set up <a target = "_blank" href = "http://pcbsd.org">PC-BSD</a> (which is basically a FreeBSD distro). The environment at Infusion Software is very energetic and fast-paced. The demographic is also rather young. During my interview they showed me around and when I got to the developer room, they showed me a projector and said &#8220;This is where we play Halo or Guitar Hero 3 when we need to take a break&#8221;. &#8216;Nuff said. I&#8217;m glad everything eventually worked out. I was rather stressed after my house got wrecked, and to add to it, I got laid-off. The way my friend Suhrid puts it. &#8220;You have the weirdest luck in the world. Really bad stuff happens to you, but then something really cool happens after that to make it better than before&#8230; you got to remodel your home for a great price, <em>and</em> you got a better job!&#8221;</p>
<p>My parents came down for a month at the beginning of January. My mom&#8217;s staying behind to help me set up the house. Of course, because of that I had to tell my <a target = "_blank" href = "http://en.wikipedia.org/wiki/Jessica_Alba">girlfriend</a> that she couldn&#8217;t come over anymore (this is all true, yes it is). Oh yeah, so I&#8217;m renting out my house. My parents had bought a house here that they don&#8217;t live in. So I&#8217;ve basically moved over there. It&#8217;s a bit of a drive to places, but nothing too bad.</p>
<p>Oh yes, I finally got to put my citizenship to use. Yes, I voted in the primaries. I registered as Republican so I could vote for <a target = "_blank" href = "http://en.wikipedia.org/wiki/Ron_Paul">Ron Paul</a>. Let&#8217;s just say that I believe in a lot of what he says because I identify myself as <a target = "_blank" href = "http://en.wikipedia.org/wiki/Libertarian">Libertarian</a>. I know a lot of people said that he wasn&#8217;t going to win, but that wasn&#8217;t the point. This country needs to change. It&#8217;s constitutionally a multi-party system, but the only parties that matter are the Republicans and Democrats and they haven&#8217;t been doing anything for this country. The current  administration has done a great job of ignoring <a target = "_blank" href = "http://en.wikipedia.org/wiki/United_States_Constitution">that piece of paper</a> this country was founded up. The subtle erosion of Civil Rights alarms me. We need to remember what this country was founded upon. Honest, law-abiding citizens should have no fear of their government. That is why I support Ron Paul. It is besides the point that he didn&#8217;t win. We need to challenge the current situation. We need to change the current situation. Of course, the idiotic media ignored Ron Paul and didn&#8217;t even talk about him. Despite that, the man was able to garner a large and loyal following through the internet. What that says is that there are people who are willing to listen and who want to listen and who want change. The sad truth is that the people with big pockets, and big media exposure get all the attention, and not the people with the good ideas. I hope that in time his ideas will prevail. I hope in time Americans will realize that this country needs to get back to its roots.</p>
<p>That&#8217;s about it. I&#8217;m going to try and update this blog a little more frequently, but no promises.</p>
<br /><a href="http://vivin.net/?p=383#comments" title="Comments on &quot;A lot of stuff&quot;"><img src="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?383" alt="Comments" /></a><img src="http://vivin.net/?ak_action=api_record_view&#38;id=383&#38;type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://vivin.net/2008/02/12/a-lot-of-stuff/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:thumbnail url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?383" />
		<media:content url="http://vivin.net/wp-content/plugins/feed-comments-number/image.php?383" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>
		<media:content url="http://vivin.net/?ak_action=api_record_view&#38;id=383&#38;type=feed" medium="image" />
	</item>
	</channel>
</rss>

