<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: gentoo code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Thu, 24 Jul 2008 22:02:54 GMT</pubDate>
    <description>DZone Snippets: gentoo code</description>
    <item>
      <title>Generate a graph using Gruff</title>
      <link>http://snippets.dzone.com/posts/show/5168</link>
      <description>This Ruby code produced a graph using gruff.  The output shows a &lt;a href="http://twitxr.com/image/6822/"&gt;line graph&lt;/a&gt; [twitxr.com] for the different fruits. Source code origin: &lt;a href="http://nubyonrails.com/pages/gruff"&gt;Gruff Update With Bar Graphs | Ruby on Rails for Newbies&lt;/a&gt; [rubyonrails.com]&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require 'gruff'&lt;br /&gt;&lt;br /&gt;g = Gruff::Line.new&lt;br /&gt;g.title = "My Graph" &lt;br /&gt;&lt;br /&gt;g.data("Apples", [1, 2, 3, 4, 4, 3])&lt;br /&gt;g.data("Oranges", [4, 8, 7, 9, 8, 9])&lt;br /&gt;g.data("Watermelon", [2, 3, 1, 5, 6, 8])&lt;br /&gt;g.data("Peaches", [9, 9, 10, 8, 7, 9])&lt;br /&gt;&lt;br /&gt;g.labels = {0 =&gt; '2003', 2 =&gt; '2004', 4 =&gt; '2005'}&lt;br /&gt;&lt;br /&gt;g.write('my_fruity_graph.png')&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note: I executed the code within an irb session on my Gentoo box. With Gentoo, &lt;a href="http://gentoo-portage.com/dev-ruby/gruff"&gt;Gruff was installed&lt;/a&gt; [gentoo-portage.com] using the command emerge -va gruff. I tried installing it on Ubuntu but ran into some difficulty, even with help from the article &lt;a href="http://snippets.dzone.com/posts/show/4140"&gt;install rmagick ubuntu&lt;/a&gt; [dzone.com].&lt;br /&gt;&lt;br /&gt;*udpate 21:48 24-Feb*&lt;br /&gt;&lt;br /&gt;The following code does exactly as the same code above, however it uses XML to separate the data from the process, making it easier and more efficient to build graphs.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/ruby&lt;br /&gt;# file: xml2gruff.rb&lt;br /&gt;&lt;br /&gt;require 'rexml/document'&lt;br /&gt;require 'gruff'&lt;br /&gt;include REXML&lt;br /&gt;&lt;br /&gt;class Xml2Gruff&lt;br /&gt;  &lt;br /&gt;  def initialize(filename)&lt;br /&gt;    file = File.new(filename, 'r')&lt;br /&gt;    doc = Document.new(file)&lt;br /&gt;    # get the title&lt;br /&gt;    @title = doc.root.elements['summary/title'].text&lt;br /&gt;    &lt;br /&gt;    @record = Hash.new&lt;br /&gt;    # get each record&lt;br /&gt;    doc.root.elements.each('records/item') {|item|&lt;br /&gt;      avalues = Array.new&lt;br /&gt;      item.elements.each('values/value') { |value| avalues &lt;&lt; value.text.to_i }&lt;br /&gt;      @record[item.elements['label'].text] = avalues&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    # get the summary labels&lt;br /&gt;    @labels = Hash.new  &lt;br /&gt;    doc.root.elements.each('summary/scale/label') {|l| @labels[l.elements['value'].text.to_i] = l.elements['title'].text} &lt;br /&gt;    &lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def save_line_graph(filename)&lt;br /&gt;&lt;br /&gt;    g = Gruff::Line.new&lt;br /&gt;    g.title = @title &lt;br /&gt;    @record.each {|label, data| g.data(label, data) }&lt;br /&gt;    g.labels = @labels&lt;br /&gt;    g.write(filename)&lt;br /&gt;&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;if __FILE__ == $0&lt;br /&gt; x2g = Xml2Gruff.new('my_fruit.xml')&lt;br /&gt; x2g.save_line_graph('my_fruit2.png')&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;file: my_fruit.xml&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;graph&gt;&lt;br /&gt;  &lt;summary&gt;&lt;br /&gt;    &lt;title&gt;My Graph&lt;/title&gt;&lt;br /&gt;    &lt;scale&gt;&lt;br /&gt;      &lt;label&gt;&lt;title&gt;2003&lt;/title&gt;&lt;value&gt;0&lt;/value&gt;&lt;/label&gt;&lt;br /&gt;      &lt;label&gt;&lt;title&gt;2004&lt;/title&gt;&lt;value&gt;2&lt;/value&gt;&lt;/label&gt;&lt;br /&gt;      &lt;label&gt;&lt;title&gt;2005&lt;/title&gt;&lt;value&gt;4&lt;/value&gt;&lt;/label&gt;&lt;br /&gt;    &lt;/scale&gt;&lt;br /&gt;  &lt;/summary&gt;&lt;br /&gt;  &lt;records&gt;&lt;br /&gt;    &lt;item&gt;&lt;br /&gt;      &lt;label&gt;Apples&lt;/label&gt;&lt;br /&gt;      &lt;values&gt;&lt;value&gt;1&lt;/value&gt;&lt;value&gt;2&lt;/value&gt;&lt;value&gt;3&lt;/value&gt;&lt;value&gt;4&lt;/value&gt;&lt;value&gt;4&lt;/value&gt;&lt;value&gt;3&lt;/value&gt;&lt;/values&gt;&lt;br /&gt;    &lt;/item&gt;&lt;br /&gt;    &lt;item&gt;&lt;br /&gt;      &lt;label&gt;Oranges&lt;/label&gt;&lt;br /&gt;      &lt;values&gt;&lt;value&gt;4&lt;/value&gt;&lt;value&gt;8&lt;/value&gt;&lt;value&gt;7&lt;/value&gt;&lt;value&gt;9&lt;/value&gt;&lt;value&gt;8&lt;/value&gt;&lt;value&gt;9&lt;/value&gt;&lt;/values&gt;&lt;br /&gt;    &lt;/item&gt;&lt;br /&gt;    &lt;item&gt;&lt;br /&gt;      &lt;label&gt;Watermelon&lt;/label&gt;&lt;br /&gt;      &lt;values&gt;&lt;value&gt;2&lt;/value&gt;&lt;value&gt;3&lt;/value&gt;&lt;value&gt;1&lt;/value&gt;&lt;value&gt;5&lt;/value&gt;&lt;value&gt;6&lt;/value&gt;&lt;value&gt;8&lt;/value&gt;&lt;/values&gt;&lt;br /&gt;    &lt;/item&gt;&lt;br /&gt;    &lt;item&gt;&lt;br /&gt;      &lt;label&gt;Peaches&lt;/label&gt;&lt;br /&gt;      &lt;values&gt;&lt;value&gt;9&lt;/value&gt;&lt;value&gt;9&lt;/value&gt;&lt;value&gt;10&lt;/value&gt;&lt;value&gt;8&lt;/value&gt;&lt;value&gt;7&lt;/value&gt;&lt;value&gt;9&lt;/value&gt;&lt;/values&gt;&lt;br /&gt;    &lt;/item&gt;&lt;br /&gt;  &lt;/records&gt;&lt;br /&gt;&lt;/graph&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Reference: &lt;a href="http://gruff.rubyforge.org/"&gt;gruff's gruff-0.2.9 Documentation&lt;/a&gt; [rubyforge.org]&lt;br /&gt;&lt;a href="http://www.google.com/url?sa=t&amp;ct=res&amp;cd=4&amp;url=http%3A%2F%2Ftopfunky.com%2Fclients%2Fblog%2F2006%2Fcanada_on_rails_gruff.pdf&amp;ei=2urBR-elJYe6-ALryoX2DA&amp;usg=AFQjCNEc0leNwpB7ai1MeHjDO3eD1T_kiQ&amp;sig2=SgqtwiMT6yb1-zOUqOl8pw"&gt;gruff graphs for ruby by geoffrey grosenbach&lt;/a&gt; [topfunky.com]</description>
      <pubDate>Sun, 24 Feb 2008 18:52:14 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5168</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>Subversion basic commands Part I</title>
      <link>http://snippets.dzone.com/posts/show/4689</link>
      <description>New users to SVN should be familiar with the following commands.  Examples based on the code from Gentoo-wiki - HOWTO subversion SVN http://urltea.com/1urj . &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#server side&lt;br /&gt;&lt;br /&gt;# create the project directory structure outside of svn&lt;br /&gt;mkdir -p ~/Documents/code/my-project/{trunk,tags,branches} &lt;br /&gt;&lt;br /&gt;# create the new repository&lt;br /&gt;svnadmin create /var/svn/my-repository &lt;br /&gt;&lt;br /&gt;# add the new project&lt;br /&gt;svn import my-project file:////var/svn/my-repository/my-project&lt;br /&gt;&lt;br /&gt;# remove the project&lt;br /&gt;rm -rf /var/svn/my-repository/my-project &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#client side&lt;br /&gt;&lt;br /&gt;# list the contents of my-project&lt;br /&gt;svn list --verbose http://my-site.com/svn/my-repository/my-project &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# *update 29-Oct-07*&lt;br /&gt;# it's possible to import, or remove the project from the client-side&lt;br /&gt;&lt;br /&gt;# add the new project&lt;br /&gt;svn import my-project http://my-site.com/svn/my-repository/my-project &lt;br /&gt;&lt;br /&gt;# remove the project&lt;br /&gt;svn delete http://my-site.com/svn/my-repository/my-project &lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note: To use http on the client side, it's necessary to have Apache configured using SVN and DAV. Refer to HOWTO Apache2 with subversion SVN and DAV. http://urltea.com/1uqg</description>
      <pubDate>Tue, 23 Oct 2007 11:37:57 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4689</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>bash script for cleaning distfiles in gentoo</title>
      <link>http://snippets.dzone.com/posts/show/3789</link>
      <description>Bash script for cleaning /usr/distfiles in gentoo.&lt;br /&gt;Usually this folder is located in /usr/portage/distfiles, but i moved it ;)&lt;br /&gt;The script will delete every file, that has not been accessed in 90 days, &lt;br /&gt;without deleting my wifi-driver (ipw3945). &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;for i in \&lt;br /&gt;`find /usr/distfiles -maxdepth 1 -atime +90 \&lt;br /&gt;| grep -Ev "/usr/distfiles/\..*" \&lt;br /&gt;| grep -v "ipw3945"` \&lt;br /&gt;; do&lt;br /&gt;    if [ -f $i ]; then&lt;br /&gt;        rm $i; &lt;br /&gt;    fi &lt;br /&gt;done&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 09 Apr 2007 19:00:16 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3789</guid>
      <author>zerrez (Johan Brinch)</author>
    </item>
    <item>
      <title>Update Gentoo System Packages</title>
      <link>http://snippets.dzone.com/posts/show/948</link>
      <description>&lt;code&gt;emerge -Upv system&lt;/code&gt;</description>
      <pubDate>Thu, 08 Dec 2005 00:43:36 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/948</guid>
      <author>Lucius-Agrippa (Lucius Agrippa)</author>
    </item>
  </channel>
</rss>
