<?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/"
	>

<channel>
	<title>Marco&#039;s Corner</title>
	<atom:link href="http://marcoscorner.walther-family.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://marcoscorner.walther-family.org</link>
	<description>Just another Software Developer&#039;s musings</description>
	<lastBuildDate>Fri, 03 Feb 2012 06:54:05 +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>Solaris IPS Packages &amp; Ruby Dependencies</title>
		<link>http://marcoscorner.walther-family.org/2012/02/solaris-ips-packages-ruby-dependencies/</link>
		<comments>http://marcoscorner.walther-family.org/2012/02/solaris-ips-packages-ruby-dependencies/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 06:54:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://marcoscorner.walther-family.org/?p=235</guid>
		<description><![CDATA[I&#8217;m currently building Solaris IPS packages for Some Ruby gems. Yes, I know rubygems does a very good job of keeping everything together. But that does not work so well on backend systems where you don&#8217;t have a free internet access and where repeatability is important. So I decided to wrap the gems we need [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently building Solaris IPS packages for Some Ruby gems. Yes, I know rubygems does a very good job of keeping everything together. But that does not work so well on backend systems where you don&#8217;t have a free internet access and where repeatability is important. So I decided to wrap the gems we need into IPS packages.</p>
<p>The IPS pkg* tools work pretty well when they try to find dependencies between different packages automatically. But so far, they claim to do it only for ELF binaries and Python files. So for Ruby, I would either have to specify dependencies manually (and miss half of them) or try to find a way to inspect the Ruby files as well.</p>
<p>So I tried to get some bash lines together to do what I wanted;-) They will probably not be complete yet!! But so far, they work pretty well. I also found, that the pkgdepend does not really handle the <code>#!/usr/bin/env ruby</code> code found in some scripts, so I tried to fix that as well.</p>
<p>So for the old Mongrel gem, the following dependencies were automatically created;-) I think that&#8217;s pretty complete.</p>
<pre>
depend fmri=pkg:/my_prefix/ruby/gem/cgi_multipart_eof_fix@2.5.0-0.1 type=require
depend fmri=pkg:/my_prefix/ruby/gem/daemons@1.1.6-0.1 type=require
depend fmri=pkg:/my_prefix/ruby/gem/fastthread@1.0.7-0.1 type=require
depend fmri=pkg:/my_prefix/ruby/gem/gem_plugin@0.2.3-0.1 type=require
depend fmri=pkg:/my_prefix/ruby/rubygems@1.6.2-0.1 type=require
depend fmri=pkg:/my_prefix/ruby@1.8.7.357-0.1 type=require
depend fmri=pkg:/system/library/math@0.5.11-0.174.0.0.0.0.0 type=require
depend fmri=pkg:/system/library@0.5.11-0.175.0.2.0.3.1 type=require
depend fmri=pkg:/system/linker@0.5.11-0.175.0.2.0.2.1 type=require
</pre>
<p>Most IPS guides specify to run <code>pkgdepend generate</code> and then <code>pkgdepend resolve</code>, the following code would go right in between those two steps.</p>
<pre>
pkgdepend generate -md $DESTDIR/dist/ $DESTDIR/pkg/$SW.p5m.2 | \
        pkgfmt > $DESTDIR/pkg/$SW.p5m.3

# XXX handle the usr/bin/env ruby case
dest_prefix=`echo $DEST | sed -e 's:^/::'`
mv $DESTDIR/pkg/$SW.p5m.3 $DESTDIR/pkg/$SW.p5m.3.orig
awk -F= -e "
        BEGIN {
                e = 0;
        }
        \$4 ~ /^env / {
                e = 1;
                printf \"%s=%s=%s=ruby \\\\\n\", \$1, \$2, \$3;
                next;
        }
        e == 1 &#038;&#038; \$2 ~ /^usr\/bin / {
                printf \"%s=$dest_prefix/bin \\\\\n\", \$1;
                e = 0;
                next;
        }
        {
                e = 0;
                print \$0;
        }" < $DESTDIR/pkg/$SW.p5m.3.orig > $DESTDIR/pkg/$SW.p5m.3

for i in `find $DESTDIR/dist$DEST/lib/ruby/gems/1.8/gems/*/lib/ -name '*.rb' `
do
  i_path=`echo $i | sed -e "s:$DESTDIR/dist/::"`
  i_reqs=`awk '$1 == "require" { print $2; }' < $i | tr -d "'" | tr -d '"' | sort -u`
  for k in $i_reqs
  do
    x=""
    y=""
    x=`ls $DESTDIR/dist$DEST/lib/ruby/gems/1.8/gems/*/lib/$k.rb 2>/dev/null`
    if [ -z "$x" ]
    then
      # XXX might not find the best version?
      y=`ls -r $DEST/lib/ruby/gems/1.8/gems/*/lib/$k.rb 2>/dev/null | head -1`
    fi
    if [ -z "$x" -a -z "$y" ]
    then
      y=`ls $DEST/lib/ruby/1.*/$k.rb 2>/dev/null`
    fi
    if [ -z "$x" -a -z "$y" ]
    then
      y=`ls $DEST/lib/ruby/vendor_ruby/$k.rb 2>/dev/null`
    fi
    if [ -z "$x" -a -z "$y" ]
    then
      y=`ls $DEST/lib/ruby/site_ruby/$k.rb 2>/dev/null`
    fi

    if [ -n "$y" ]
    then
      echo "depend type=require fmri=__TBD pkg.debug.depend.file="`basename $y`" \\"
      echo "    pkg.debug.depend.path="`dirname $y | sed -e 's:^/::'`" \\"
      echo "    pkg.debug.depend.reason=$i_path pkg.debug.depend.type=script"
    fi
  done
done >> $DESTDIR/pkg/$SW.p5m.3

i=`ls $DESTDIR/dist$DEST/lib/ruby/gems/1.8/specifications/*.gemspec 2>/dev/null`
if [ -n "$i" ]
then
  for k in $i
  do
    echo "depend type=require fmri=__TBD pkg.debug.depend.file=gem \\"
    echo "    pkg.debug.depend.path="`echo $DEST/bin | sed -e 's:^/::'`" \\"
    echo "    pkg.debug.depend.reason="`echo $k | sed -e "s:$DESTDIR/dist/::"`

    dev_deps=`fgrep 'add_development_dependency(' < $k | \
        sed -e 's:^.*add_development_dependency(%q<\([^>]*\)>.*$:\1:' | \
        sort -u`
    deps=`fgrep 'add_dependency(' < $k | \
        sed -e 's:^.*add_dependency(%q<\([^>]*\)>.*$:\1:' | \
        sort -u`
    for l in $deps
    do
      found=0
      for m in $dev_deps
      do
        if [ "$l" = "$m" ]
        then
          found=1
        fi
      done

      if [ $found -eq 0 ]
      then
        spec=`ls -r $DEST/lib/ruby/gems/1.8/specifications/$l-*.gemspec | head -1`
        if [ -n "$spec" ]
        then
          echo "depend type=require fmri=__TBD pkg.debug.depend.file="`basename $spec`" \\"
          echo "    pkg.debug.depend.path="`dirname $spec | sed -e 's:^/::'`" \\"
          echo "    pkg.debug.depend.reason="`echo $k | sed -e "s:$DESTDIR/dist/::"`
        fi
      fi
    done
  done
fi >> $DESTDIR/pkg/$SW.p5m.3

pkgdepend resolve -m $DESTDIR/pkg/$SW.p5m.3
</pre>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Solaris+IPS+Packages+%26+Ruby+Dependencies+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D235" title="Post to Twitter"><img class="nothumb" src="http://marcoscorner.walther-family.org/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter4.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Solaris+IPS+Packages+%26+Ruby+Dependencies+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D235" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://marcoscorner.walther-family.org/2012/02/solaris-ips-packages-ruby-dependencies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puppet @ Solaris &#8211; Some Extensions to Facter</title>
		<link>http://marcoscorner.walther-family.org/2012/02/puppet-solaris-some-extensions-to-facter/</link>
		<comments>http://marcoscorner.walther-family.org/2012/02/puppet-solaris-some-extensions-to-facter/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 22:34:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://marcoscorner.walther-family.org/?p=229</guid>
		<description><![CDATA[I&#8217;m using the OpenSource version of puppet, the system configuration engine to keep some Solaris systems in sync. For some modules, I wanted to know which zones are running on a given system. So I extended facter, puppet&#8217;s system fact collecting framework a bit. This little patch adds a list of zones and a mapping [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m using the OpenSource version of <a title="Puppetlabs" href="http://puppetlabs.com/" target="_blank">puppet</a>, the system configuration engine to keep some Solaris systems in sync. For some modules, I wanted to know which zones are running on a given system. So I extended facter, puppet&#8217;s system fact collecting framework a bit.</p>
<p>This little <a href="http://marcoscorner.walther-family.org/wp-content/uploads/2012/02/facter.patch_.gz">patch</a> adds a list of zones and a mapping for shared IP interfaces to their zones to the facts. Something like</p>
<pre>
root@global:~# /opt/bin/facter
...
interfaces =&gt; lo0,lo0_1,beaggr0,beaggr0_1,feaggr0,feaggr0_1
ipaddress =&gt; 0.20.72.116
ipaddress6 =&gt; ::
ipaddress_beaggr0 =&gt; 0.20.72.116
ipaddress_beaggr0_1 =&gt; 0.20.72.180
ipaddress_feaggr0 =&gt; 1.231.85.66
ipaddress_feaggr0_1 =&gt; 1.231.85.71
ipaddress_lo0 =&gt; 127.0.0.1
ipaddress_lo0_1 =&gt; 127.0.0.1
...
macaddress =&gt; 00:21:28:af:fd:06
macaddress_beaggr0 =&gt; 0:21:28:af:fd:6
macaddress_feaggr0 =&gt; 0:21:28:af:fd:7
...
netmask =&gt; 255.255.252.0
netmask_beaggr0 =&gt; 255.255.252.0
netmask_beaggr0_1 =&gt; 255.255.252.0
netmask_feaggr0 =&gt; 255.255.255.240
netmask_feaggr0_1 =&gt; 255.255.255.240
netmask_lo0 =&gt; 255.0.0.0
netmask_lo0_1 =&gt; 255.0.0.0
network_beaggr0 =&gt; 0.20.72.0
network_beaggr0_1 =&gt; 0.20.72.0
network_feaggr0 =&gt; 1.231.85.64
network_feaggr0_1 =&gt; 1.231.85.64
network_lo0 =&gt; 127.0.0.0
network_lo0_1 =&gt; 127.0.0.0
...
zone_beaggr0_1 =&gt; z004
zone_feaggr0_1 =&gt; z004
zone_lo0_1 =&gt; z004
zones =&gt; global, z003,z002,z001,z004
</pre>
<p>I don&#8217;t know if that&#8217;s useful for anybody else. But just in case;-)</p>
<p>Have fun,</p>
<p>&#8211; Marco</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Puppet+%40+Solaris+%E2%80%93+Some+Extensions+to+Facter+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D229" title="Post to Twitter"><img class="nothumb" src="http://marcoscorner.walther-family.org/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter4.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Puppet+%40+Solaris+%E2%80%93+Some+Extensions+to+Facter+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D229" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://marcoscorner.walther-family.org/2012/02/puppet-solaris-some-extensions-to-facter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GNU Bash and Environment Variables in the PS1</title>
		<link>http://marcoscorner.walther-family.org/2012/01/bash-and-environment-variables-in-the-ps1/</link>
		<comments>http://marcoscorner.walther-family.org/2012/01/bash-and-environment-variables-in-the-ps1/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 07:10:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://marcoscorner.walther-family.org/?p=216</guid>
		<description><![CDATA[Update &#8211; Sorry, while the patch below works, it&#8217;s NOT needed to get that functionality!! GNU bash can do that without modifications. I don&#8217;t know why I missed that before:-( Simply add a ${VAR} into the single quotes when you define the PS1! $ PS1='\u@${FOO}\$ ' marcow@YY$ FOO=XX marcow@XX$ Sorry for the confusion &#8211; Marco [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #339966;">Update &#8211; Sorry, while the patch below works, it&#8217;s NOT needed to get that functionality!! GNU bash can do that without modifications. I don&#8217;t know why I missed that before:-( Simply add a ${VAR} into the single quotes when you define the PS1!</span></p>
<p><code style="color: #339966;">$ PS1='\u@${FOO}\$ '<br />
marcow@YY$ FOO=XX<br />
marcow@XX$<br />
</code></p>
<p><span style="color: #339966;">Sorry for the confusion<br />
</span></p>
<p><span style="color: #339966;">&#8211; Marco<br />
</span></p>
<p>OK, long time nothing new here:-( I did a lot of stuff but nothing really interesting for the outside. But today I had a little problem which might also be useful for others &#8211; Adding the value of a shell variable into the <a title="GNU Bash" href="http://directory.fsf.org/wiki/Bash" target="_blank">GNU Bash</a> prompt.</p>
<p>I followed the \D{&lt;format&gt;} example and added an \E{var_name} to the bash 4.2.20 sources. It seems to work as expected and even honours changes to the variable;-)</p>
<p><code><br />
root@foo:~$ echo $PS1<br />
\u@\E{MW_HOST}:\w$<br />
root@foo:~$ MW_HOST=x<br />
root@x:~$ MW_HOST=mwbuild01z1<br />
root@mwbuild01z1:~$<br />
</code></p>
<p>The little patch to the parse.y source is below. For interested people without bison/yacc, the same patch could be added to the included y.tab.c file.</p>
<p><code><br />
--- bash-4.2.20.orig/parse.y    2012-01-28 00:42:44.010257843 -0600<br />
+++ bash-4.2.20/parse.y 2012-01-27 22:00:55.192082732 -0600<br />
@@ -5199,6 +5199,37 @@<br />
temp = savestring (timebuf);<br />
goto add_string;</code></p>
<p>+/* MARCO */<br />
+            case &#8216;E&#8217;:           /* Environment Variable */<br />
+              {<br />
+                char *var_name;<br />
+<br />
+                if (string[1] != &#8216;{&#8216;)           /* } */<br />
+                  goto not_escape;<br />
+<br />
+               string += 2;                    /* skip { */<br />
+               var_name = xmalloc (strlen (string) + 3);<br />
+               for (t = var_name; *string &amp;&amp; *string != &#8216;}&#8217;; )<br />
+                 *t++ = *string++;<br />
+<br />
+               *t = &#8216;\0&#8242;;<br />
+               c = *string;    /* tested at add_string */<br />
+<br />
+                t = get_string_value(var_name);<br />
+                if (t == (char *)NULL)<br />
+                  t = &#8220;&#8221;;<br />
+<br />
+                if (promptvars || posixly_correct)<br />
+                  /* Make sure that expand_prompt_string is called with a<br />
+                     second argument of Q_DOUBLE_QUOTES if we use this<br />
+                     function here. */<br />
+                  temp = sh_backslash_quote_for_double_quotes(t);<br />
+                else<br />
+                  temp = savestring(t);<br />
+<br />
+                goto add_string;<br />
+              }<br />
+<br />
case &#8216;n&#8217;:<br />
temp = (char *)xmalloc (3);<br />
temp[0] = no_line_editing ? &#8216;\n&#8217; : &#8216;\r&#8217;;</p>
<p>Maybe that helps somebody else. The patch is very small but it might still create problems with the formatting, so here is a download version <a href="http://marcoscorner.walther-family.org/wp-content/uploads/2012/01/bash-4.2.20.patch_.zip">bash-4.2.20.patch</a>.</p>
<p>As always, have fun;-)</p>
<p>&#8211; Marco</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=GNU+Bash+and+Environment+Variables+in+the+PS1+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D216" title="Post to Twitter"><img class="nothumb" src="http://marcoscorner.walther-family.org/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter4.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=GNU+Bash+and+Environment+Variables+in+the+PS1+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D216" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://marcoscorner.walther-family.org/2012/01/bash-and-environment-variables-in-the-ps1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adventures in Audiobooks</title>
		<link>http://marcoscorner.walther-family.org/2011/02/adventures-in-audiobooks/</link>
		<comments>http://marcoscorner.walther-family.org/2011/02/adventures-in-audiobooks/#comments</comments>
		<pubDate>Wed, 23 Feb 2011 07:12:35 +0000</pubDate>
		<dc:creator>mw46d</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://marcoscorner.walther-family.org/?p=210</guid>
		<description><![CDATA[Audio books are fun. Downloading them legally and using  them on your systems should be as fast and as painless as possible. But that&#8217;s not completely true when you buy  audio books from Borders and try to use/handle them on Linux:-( Once you decide and buy your audio books, Borders adds links into your account [...]]]></description>
			<content:encoded><![CDATA[<p>Audio books are fun. Downloading them legally and using  them on your systems should be as fast and as painless as possible. But that&#8217;s not completely true when you buy  audio books from <a title="Borders" href="http://audiobooks.borders.com" target="_blank">Borders</a> and try to use/handle them on Linux:-(</p>
<p>Once you decide and buy your audio books, Borders adds links into your account which are only useful for a program called <a title="OMC" href="http://www.overdrive.com/software/omc/" target="_blank">OverDrive Media Console </a>which is not available from Linux:-( Or more precisely Linux on x86 PC&#8217;s. It seems to be available for Android;-)</p>
<p>OK, I have a VBox image for those cases when I really need to run some Windows software. But even after the download was successful, there is the next problem:-( You end up with MP3 files which represent the content of a complete audio CD. So that does not really help when you want to listen to those files with anything other than OMC:-( Car stereos, especially the ones which would understand MP3, would see the files as 65+ minute files without any borders were you could easily restart to listen:-(</p>
<p>But OMC somehow had chapters and boundaries.  So something was in the files, which helped OMC but was not normally useful for other programs. I looked for a program to check the MP3 meta data. One program which seemed to be useful was <a title="Metaguru" href="http://west-penwith.org.uk/misc/metaguru.htm" target="_blank">metaguru </a>. It&#8217;s was not available for my x86-64 Ubuntu system but the compile was easy;-)</p>
<p>So running metaguru on one of the MP3 files showed one interesting tag:</p>
<blockquote><p>TXXX {OverDrive MediaMarkers} = {&lt;Markers&gt;&lt;Marker&gt;&lt;Name&gt;Introduction&lt;/Name&gt;&lt;Time&gt;00:00.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;Chapter 1&lt;/Name&gt;&lt;Time&gt;00:33.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 1 (05:11)&lt;/Name&gt;&lt;Time&gt;05:11.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 1 (10:06)&lt;/Name&gt;&lt;Time&gt;10:06.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 1 (15:06)&lt;/Name&gt;&lt;Time&gt;15:06.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 1 (19:12)&lt;/Name&gt;&lt;Time&gt;19:12.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;Chapter 2&lt;/Name&gt;&lt;Time&gt;23:02.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 2 (27:57)&lt;/Name&gt;&lt;Time&gt;27:57.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 2 (32:46)&lt;/Name&gt;&lt;Time&gt;32:46.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 2 (35:55)&lt;/Name&gt;&lt;Time&gt;35:55.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 2 (39:18)&lt;/Name&gt;&lt;Time&gt;39:18.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;Chapter 3&lt;/Name&gt;&lt;Time&gt;43:20.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 3 (48:13)&lt;/Name&gt;&lt;Time&gt;48:13.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 3 (53:12)&lt;/Name&gt;&lt;Time&gt;53:12.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 3 (58:07)&lt;/Name&gt;&lt;Time&gt;58:07.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;Chapter 3&lt;/Name&gt;&lt;Time&gt;01:02:52.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 3 (01:07:28)&lt;/Name&gt;&lt;Time&gt;01:07:28.000&lt;/Time&gt;&lt;/Marker&gt;&lt;Marker&gt;&lt;Name&gt;\a0\a0\a0\a0\a0\a0Chapter 3 (01:10:42)&lt;/Name&gt;&lt;Time&gt;01:10:42.000&lt;/Time&gt;&lt;/Marker&gt;&lt;/Markers&gt;}</p></blockquote>
<p>That was the way OMC was able to have boundaries. My first test was to try to use that info to create meta info ( a CUE file) to be used with the KDE CD burning application K3b. I wrote a little <a href="http://marcoscorner.walther-family.org/wp-content/uploads/2011/02/cue_creatore.rb"></a><a href="http://marcoscorner.walther-family.org/wp-content/uploads/2011/02/cue_creator.rb_.gz">cue_creator.rb</a> Ruby program to do just that.  That program creates a CUE file with the same base name as the MP3 file with the info from the OMC data. At least K3b seems to be happy and I think I could also use that to split the large MP3 into a couple of smaller files.</p>
<p>I don&#8217;t know if that&#8217;s useful for others, but maybe;-)</p>
<p>Have fun,</p>
<p>&#8211; Marco</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Adventures+in+Audiobooks+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D210" title="Post to Twitter"><img class="nothumb" src="http://marcoscorner.walther-family.org/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter4.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Adventures+in+Audiobooks+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D210" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://marcoscorner.walther-family.org/2011/02/adventures-in-audiobooks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Random Hack of Kindness &#8211; Fun</title>
		<link>http://marcoscorner.walther-family.org/2010/12/random-hack-of-kindness-fun/</link>
		<comments>http://marcoscorner.walther-family.org/2010/12/random-hack-of-kindness-fun/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 06:26:17 +0000</pubDate>
		<dc:creator>mw46d</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://marcoscorner.walther-family.org/?p=202</guid>
		<description><![CDATA[OK, I spend most of most of Saturday and Sunday in San Francisco @ the local RHoK installation. I met some very interesting people, learned a lot of different thing about software projects and I hope my little changes will make a bit of a difference. I played with Ushahidi, an Open Source crowdsourcing platform [...]]]></description>
			<content:encoded><![CDATA[<p><a title="L1022028 2 by Jason Goecke, on Flickr" href="http://www.flickr.com/photos/jsgoecke/5233054892/"><img class="alignleft" style="margin: 5px;" src="http://farm6.static.flickr.com/5208/5233054892_e10748a9df.jpg" alt="L1022028 2" width="200" height="133" /> </a>OK, I spend most of most of Saturday and Sunday in San Francisco @ the local <a href="http://rhok.org" target="_blank">RHoK</a> installation. I met some very interesting people, learned a lot of different thing about software projects and I hope my little changes will make a bit of a difference.</p>
<p>I played with <a title="Ushahidi" href="http://ushahidi.com/" target="_blank">Ushahidi</a>, an Open Source crowdsourcing platform written in PHP, which is used in different crisis situations. GeorgeCh. wanted the included alert mechanism to be expanded so that alerts could be limited to different categories. That patch was working fine on my test setup;-) If somebody is interested in playing with it, <a href="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/u.diff_.gz">u.diff</a> based on 2.0rc1.</p>
<p>The second application, I was playing with, was <a href="http://www.frontlinesms.com/" target="_blank">FrontlineSMS</a>, a SMS management application in Java. This is a desktop application which can work with MySQL as backend database. So we were trying if we could run multiple instances against the same DB. That pretty much works except `client instances&#8217; without wireless modems could not send any SMS out. The messages would end up in the Outbox and would only be sent when the `server instance&#8217; would be restarted. I looked at the code and found that it would only on startup check in there are any messages in the Outbox. So I added a little daemon thread to wake up every five minutes and flush the Outbox. The thread seems to run and check but we had not enough time to set the complete test environment up again. If somebody is interested, the patch <a href="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/f.diff_.gz">f.diff</a> is against 1.6.16.3.</p>
<p>Overall those were two interesting days;-)</p>
<p>Thanks to <a href="https://www.tropo.com/home.jsp">TROPO</a> &amp;<a href="http://www.inveneo.org/" target="_blank"> inveneo</a> for sponsoring such events. They even provided some prices and I got a Amazon gift card;-) Thanks to JasonG for the photo, I&#8217;m normally the guy behind the camera;-)</p>
<p>As always have fun;-)</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Random+Hack+of+Kindness+%E2%80%93+Fun+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D202" title="Post to Twitter"><img class="nothumb" src="http://marcoscorner.walther-family.org/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter4.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Random+Hack+of+Kindness+%E2%80%93+Fun+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D202" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://marcoscorner.walther-family.org/2010/12/random-hack-of-kindness-fun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some Snowy Yosemite Impressions;-)</title>
		<link>http://marcoscorner.walther-family.org/2010/12/some-snowy-yosemite-impressions/</link>
		<comments>http://marcoscorner.walther-family.org/2010/12/some-snowy-yosemite-impressions/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 07:07:46 +0000</pubDate>
		<dc:creator>mw46d</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://marcoscorner.walther-family.org/?p=199</guid>
		<description><![CDATA[It&#8217;s already almost a week since we made it back from our first stay in a really snowy Yosemite Valley. We started spending our Thanksgiving week up there something like five years ago. So far, all years had pretty good weather. Or let&#8217;s say mostly sunny &#38; dry;-) Because the snowy weather was a lot [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/DCS_0371_1024.jpg"><img class="alignleft size-medium wp-image-193" style="margin: 5px;" title="DCS_0371_1024" src="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/DCS_0371_1024-300x225.jpg" alt="" width="180" height="135" /></a><a href="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/DCS_0530_1024.jpg"><img class="alignright size-medium wp-image-195" style="margin: 5px;" title="DCS_0530_1024" src="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/DCS_0530_1024-300x225.jpg" alt="" width="180" height="135" /></a>It&#8217;s already almost a week since we made it back from our first stay in a really snowy Yosemite Valley. We started spending our Thanksgiving week up there something like five years ago.</p>
<p>So far, all years had pretty good weather. Or let&#8217;s say mostly sunny &amp; dry;-) Because the snowy weather was a lot of fun as well. So the weather was just as good, but somewhat different;-) Two feet of snow limit where and how far you can hike, but even so, we found enough to keep busy all the days;-)<br />
<a href="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/DCS_0597_1024.jpg"><img class="alignleft size-medium wp-image-197" style="margin: 5px;" title="DCS_0597_1024" src="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/DCS_0597_1024-300x225.jpg" alt="" width="180" height="135" /></a><a href="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/DCS_0561_1024.jpg"><img class="size-medium wp-image-196 alignright" style="margin-top: 5px; margin-bottom: 5px;" title="DCS_0561_1024" src="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/DCS_0561_1024-300x225.jpg" alt="" width="180" height="135" /></a><a href="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/DCS_0635_1024.jpg"><img class="aligncenter size-medium wp-image-198" style="margin: 5px;" title="DCS_0635_1024" src="http://marcoscorner.walther-family.org/wp-content/uploads/2010/12/DCS_0635_1024-300x225.jpg" alt="" width="180" height="135" /></a>Just some impressions;-)</p>
<p>As always, get out there and make the best of every day;-)</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Some+Snowy+Yosemite+Impressions%3B-%29+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D199" title="Post to Twitter"><img class="nothumb" src="http://marcoscorner.walther-family.org/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter4.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Some+Snowy+Yosemite+Impressions%3B-%29+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D199" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://marcoscorner.walther-family.org/2010/12/some-snowy-yosemite-impressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A suggestion for the darker times of the year</title>
		<link>http://marcoscorner.walther-family.org/2010/11/a-suggestion-for-the-darker-times-of-the-year/</link>
		<comments>http://marcoscorner.walther-family.org/2010/11/a-suggestion-for-the-darker-times-of-the-year/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 04:09:23 +0000</pubDate>
		<dc:creator>mw46d</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://marcoscorner.walther-family.org/?p=186</guid>
		<description><![CDATA[So far, the weather was really nice here in central CA, but even so, winter is coming and with it the daylight leaves earlier. Maybe the little monkey to the left can give you a suggestion, what to do with those longer evenings;-) Find a good book, a warm blanket, and have fun;-) &#8211; Marco [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://marcoscorner.walther-family.org/wp-content/uploads/2010/11/monkey.jpg"><img class="size-medium wp-image-187 alignleft" style="margin: 3px;" title="monkey" src="http://marcoscorner.walther-family.org/wp-content/uploads/2010/11/monkey-256x300.jpg" alt="" width="256" height="300" /></a>So far, the weather was really nice here in central CA, but even so, winter is coming and with it the daylight leaves earlier. Maybe the little monkey to the left can give you a suggestion, what to do with those longer evenings;-)</p>
<p>Find a good book, a warm blanket, and have fun;-)</p>
<p>&#8211; Marco</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=A+suggestion+for+the+darker+times+of+the+year+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D186" title="Post to Twitter"><img class="nothumb" src="http://marcoscorner.walther-family.org/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter4.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=A+suggestion+for+the+darker+times+of+the+year+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D186" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://marcoscorner.walther-family.org/2010/11/a-suggestion-for-the-darker-times-of-the-year/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A little Bugzilla Extension &#8211; Direct SQL execution for Admins</title>
		<link>http://marcoscorner.walther-family.org/2010/10/a-little-bugzilla-extension-direct-sql-execution-for-admins/</link>
		<comments>http://marcoscorner.walther-family.org/2010/10/a-little-bugzilla-extension-direct-sql-execution-for-admins/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 18:55:04 +0000</pubDate>
		<dc:creator>mw46d</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://marcoscorner.walther-family.org/?p=183</guid>
		<description><![CDATA[We manage a couple of Bugzilla installations. For some stacks, the Bugzilla admins manage many or even all products, but they still don&#8217;t have shell access to the backend servers. In order to make the live for those people a bit easier, I added a simple SQL edit form to the Administration page for those [...]]]></description>
			<content:encoded><![CDATA[<p>We manage a couple of <a title="Bugzilla" href="http://www.bugzilla.org/" target="_blank">Bugzilla</a> installations. For some stacks, the Bugzilla admins manage many or even all products, but they still don&#8217;t have shell access to the backend servers. In order to make the live for those people a bit easier, I added a simple SQL edit form to the Administration page for those admins.</p>
<p>But be careful, what you wish for. As it is right now, my <a title="Patch" href="http://marcoscorner.walther-family.org/wp-content/uploads/2010/10/bz.diff" target="_blank">diff (against 3.2.8)</a> uses the same DB-user as Bugzilla overall! So one wrong move and the admins could ruin the DB.</p>
<p>Maybe this is helpful either directly or as an example how to extend Bugzilla.</p>
<p>Have fun</p>
<p>&#8211; Marco</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=A+little+Bugzilla+Extension+%E2%80%93+Direct+SQL+execution+for+Admins+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D183" title="Post to Twitter"><img class="nothumb" src="http://marcoscorner.walther-family.org/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter4.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=A+little+Bugzilla+Extension+%E2%80%93+Direct+SQL+execution+for+Admins+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D183" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://marcoscorner.walther-family.org/2010/10/a-little-bugzilla-extension-direct-sql-execution-for-admins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GlassFish Gem for 3.0.1</title>
		<link>http://marcoscorner.walther-family.org/2010/09/glassfish-gem-for-3-0-1/</link>
		<comments>http://marcoscorner.walther-family.org/2010/09/glassfish-gem-for-3-0-1/#comments</comments>
		<pubDate>Mon, 27 Sep 2010 22:58:23 +0000</pubDate>
		<dc:creator>mw46d</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://marcoscorner.walther-family.org/?p=176</guid>
		<description><![CDATA[I just played a bit with the GlassFish gem for JRuby. But I realized that there was a new version for GF out there but the gem was not updated. A short search @ google did not show anything, and I had the build environment setup already. My Gem is here;-) So here are the [...]]]></description>
			<content:encoded><![CDATA[<p>I just played a bit with the <a title="GlassFish" href="https://glassfish.dev.java.net" target="_blank">GlassFish</a> gem for <a title="JRuby" href="http://jruby.org/" target="_blank">JRuby</a>. But I realized that there was a new version for GF out there but the gem was not updated. A short search @ google did not show anything, and I had the build environment setup already. <a title="GF gem" href="http://marcoscorner.walther-family.org/wp-content/uploads/2010/10/glassfish-1.0.3.1.dev-universal-java.gem" target="_blank">My Gem is here;-)</a></p>
<p>So here are the diffs I did to build a GF gem for GF 3.0.1 &amp; JRuby 1.5.2. My first little tests did not reveal any problems. If you find something, let me know. The SVN repo for the base is @ dev.java.net (https://svn.dev.java.net/svn/glassfish-scripting/trunk/rails/gem)</p>
<blockquote><p>gf_gem/gem$ svn diff pom.xml<br />
Index: pom.xml<br />
===================================================================<br />
&#8212; pom.xml     (revision 1740)<br />
+++ pom.xml     (working copy)<br />
@@ -8,12 +8,12 @@<br />
&lt;description&gt;This module creates the jruby gem distribution image&lt;/description&gt;</p>
<p>&lt;properties&gt;<br />
-        &lt;glassfish.version&gt;3.0-b74b&lt;/glassfish.version&gt;<br />
-        &lt;gem.version&gt;1.0.3.dev&lt;/gem.version&gt;<br />
-        &lt;jruby-container.version&gt;1.0-b17&lt;/jruby-container.version&gt;<br />
-        &lt;hk2.version&gt;1.0.0&lt;/hk2.version&gt;<br />
+        &lt;glassfish.version&gt;3.0.1-b15&lt;/glassfish.version&gt;<br />
+        &lt;gem.version&gt;1.0.3.1.dev&lt;/gem.version&gt;<br />
+        &lt;jruby-container.version&gt;1.0-b18&lt;/jruby-container.version&gt;<br />
+        &lt;hk2.version&gt;1.0.9&lt;/hk2.version&gt;<br />
&lt;grizzly-jruby.version&gt;1.8.30&lt;/grizzly-jruby.version&gt;<br />
-        &lt;jruby.version&gt;1.4.0&lt;/jruby.version&gt;<br />
+        &lt;jruby.version&gt;1.5.2&lt;/jruby.version&gt;<br />
&lt;/properties&gt;<br />
&lt;build&gt;<br />
&lt;plugins&gt;</p></blockquote>
<p>I don&#8217;t know if/when I&#8217;ll look at this again, but since I had it, maybe it&#8217;s useful for others;-)</p>
<p>Have fun out there,</p>
<p>&#8211; Marco</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=GlassFish+Gem+for+3.0.1+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D176" title="Post to Twitter"><img class="nothumb" src="http://marcoscorner.walther-family.org/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter4.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=GlassFish+Gem+for+3.0.1+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D176" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://marcoscorner.walther-family.org/2010/09/glassfish-gem-for-3-0-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wireless PA on the Cheap;-)</title>
		<link>http://marcoscorner.walther-family.org/2010/05/wireless-pa-on-the-cheap/</link>
		<comments>http://marcoscorner.walther-family.org/2010/05/wireless-pa-on-the-cheap/#comments</comments>
		<pubDate>Fri, 28 May 2010 18:11:23 +0000</pubDate>
		<dc:creator>mw46d</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://marcoscorner.walther-family.org/?p=171</guid>
		<description><![CDATA[OK, so it&#8217;s swim season again for the Tracy Tritons. And we are going to host a big meet with 700+ swimmers age 4 to 18 years plus their families. Our biggest concern is to make sure, everybody has updated information so that the meet can flow smoothly without much waiting for swimmers or volunteers. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://marcoscorner.walther-family.org/wp-content/uploads/2010/05/wirelessPA.jpg"><img class="alignright size-medium wp-image-170" title="wirelessPA" src="http://marcoscorner.walther-family.org/wp-content/uploads/2010/05/wirelessPA-300x125.jpg" alt="" width="300" height="125" /></a>OK, so it&#8217;s swim season again for the <a href="http://tracytritons.com">Tracy Tritons</a>. And we are going to host a big meet with 700+ swimmers age 4 to 18 years plus their families.</p>
<p>Our biggest concern is to make sure, everybody has updated information so that the meet can flow smoothly without much waiting for swimmers or volunteers.</p>
<p>So far we have a PA system around the pool. But the big grass area at the high school where we host the meet is like 150++ meters away from the pool. So our speakers will not reach there. Putting extra speakers that far away from the amp without a good way to run cables would need really heavy-duty cables if it would be possible at all.</p>
<p>So the idea was to find a wireless setup which could be placed somewhere in the grass area where there is a power outlet. The problem here is that most commercial systems have a wireless microphone which reaches 25-35 meters. And they are expensive when you need a larger, outdoor rated system <img src='http://marcoscorner.walther-family.org/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>I&#8217;m running a Wi-Fi access point at the meets to basically let people check the meet information based on my <a href="http://kenai.com/projects/mmweb">mmweb</a> code. So the idea was to add a streaming server to that host so that any Wi-Fi client could actually receive the PA stream as well. So we  set up a special client, which would send the stream to a second Amp somewhere in the field. The Wi-Fi client is based on the <a href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/" target="_blank">internet radio setup from MightyOhm</a>. Unfortunately, the newer OpenWRT sources get pretty close to the flash limit of the Asus WL-520GU. So I had to build a very specialized image for my use.</p>
<p>So far, the setup works fine for a distance of two meters in my living room;-) Let&#8217;s see how it works over the weekend;-)</p>
<p>As always, have fun playing with stuff.</p>
<p>&#8211; Marco</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Wireless+PA+on+the+Cheap%3B-%29+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D171" title="Post to Twitter"><img class="nothumb" src="http://marcoscorner.walther-family.org/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter4.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Wireless+PA+on+the+Cheap%3B-%29+http%3A%2F%2Fmarcoscorner.walther-family.org%2F%3Fp%3D171" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://marcoscorner.walther-family.org/2010/05/wireless-pa-on-the-cheap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

