<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns="http://purl.org/rss/1.0/">




    



<channel rdf:about="http://slug.gnhlug.org/talks/RSS">
  <title>Talks</title>
  <link>http://slug.gnhlug.org</link>

  <description>
    
      Information from talks.
    
  </description>

  

  
            <syn:updatePeriod>daily</syn:updatePeriod>
            <syn:updateFrequency>1</syn:updateFrequency>
            <syn:updateBase>2005-12-31T06:23:55Z</syn:updateBase>
        

  <image rdf:resource="http://slug.gnhlug.org/logo.png"/>

  <items>
    <rdf:Seq>
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/bit-torrent"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/open-office"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/Booch_Lecture.ppt"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/BackupPC.mm"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/pygowave"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/more-than-just-another-release-the-new-features-of-ubuntu-9.10"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/Mer_Project_Introduction.pdf"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/bazaar"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/upnp-dlna"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/genshi-talk"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/evas-talk-april-2008"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/panda3d"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/mp3-talk-feb07"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/google-earth-talk"/>
      
      
        <rdf:li rdf:resource="http://slug.gnhlug.org/Members/rea/SLUG/talks/intro-to-cascading-style-sheets"/>
      
    </rdf:Seq>
  </items>

</channel>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/bit-torrent">
    <title>Bit Torrent</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/bit-torrent</link>
    <description></description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2 class="title">Bit Torrent</h2>
<p>Who,What,When,How</p>
<ul class="simple">
<li>&lt;<a class="reference external" href="http://en.wikipedia.org/wiki/BitTorrent">http://en.wikipedia.org/wiki/BitTorrent</a>&gt;</li>
<li>&lt;<a class="reference external" href="http://www.bittorrent.com/">http://www.bittorrent.com/</a>&gt;</li>
</ul>
<div class="section" id="slides">
<h3>slides</h3>
<p>&lt;<a class="reference external" href="http://www.google.com/url?sa=t&source=web&cd=1&ved=0CBoQFjAA&url=http%3A%2F%2Fwww.cs.cmu.edu%2Fafs%2Fcs%2FWeb%2FPeople%2Fashu%2Ftalks%2FBT-Infocom.ppt&ei=R3OTTpb8G4ji0QHs5fgz&usg=AFQjCNHE6V9-OzgaoLYEtioiDPD_BiqVgg">http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBoQFjAA&amp;url=http%3A%2F%2Fwww.cs.cmu.edu%2Fafs%2Fcs%2FWeb%2FPeople%2Fashu%2Ftalks%2FBT-Infocom.ppt&amp;ei=R3OTTpb8G4ji0QHs5fgz&amp;usg=AFQjCNHE6V9-OzgaoLYEtioiDPD_BiqVgg</a>&gt;</p>
</div>
<div class="section" id="clients">
<h3>Clients</h3>
<p>&lt;<a class="reference external" href="http://en.wikipedia.org/wiki/BitTorrent_client">http://en.wikipedia.org/wiki/BitTorrent_client</a>&gt;</p>
<p>Deluge  --  &lt;<a class="reference external" href="http://deluge-torrent.org/">http://deluge-torrent.org/</a>&gt;</p>
<p>ktorrent   --  &lt;<a class="reference external" href="http://ktorrent.org/">http://ktorrent.org/</a>&gt;</p>
</div>
<div class="section" id="security-obscurity">
<h3>Security/obscurity</h3>
<p>Tor -- &lt;<a class="reference external" href="https://www.torproject.org/">https://www.torproject.org/</a>&gt;</p>
</div>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2011-10-10T22:50:00Z</dc:date>
    <dc:type>Page</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/open-office">
    <title>Open Office talk</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/open-office</link>
    <description>What can we learn about Open Office.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<h2>Some web links</h2>
<ul>
<li><a class="external-link" href="http://www.openoffice.org/">OpenOffice.org</a> (<a class="external-link" href="http://wiki.services.openoffice.org/wiki/Documentation/How_Tos">howtos</a> &amp; <a class="external-link" href="http://wiki.services.openoffice.org/wiki/Documentation/Tutorials">tutorials</a>)</li>
<li>OpenOffice conference 2010 <a class="external-link" href="http://www.ooocon.org/index.php/ooocon/2010/schedConf/presentations">presentations</a></li>
<li><a class="external-link" href="http://www.openoffice.org/"></a>UTexas (<a class="external-link" href="http://www.ischool.utexas.edu/technology/tutorials/office/impress/">Impress</a> &amp; <a class="external-link" href="http://www.ischool.utexas.edu/technology/tutorials/office/oowriter/">Writer</a>)</li>
<li>﻿<a class="external-link" href="http://www.tutorialsforopenoffice.org/index.html">Tutorials for OpenOffice</a></li>
<li>﻿<a class="external-link" href="http://openoffice.blogs.com/openoffice/">Solveig Haugland, author of the OpenOffice.org Guidebook</a></li></ul>
<h2>Upcoming in Open Office 3.4</h2>
<p>What to expect in the release now in <a class="external-link" href="http://wiki.services.openoffice.org/wiki/Feature_Freeze_Testing_3.4">alpha</a>.</p>
<h2>It couldn't be a SLUG talk without mentioning</h2>
<p>How to <a class="external-link" href="http://wiki.services.openoffice.org/wiki/Python">script OpenOffice in Python</a>.</p>
<h2>The future without Oracle</h2>
<div><a class="external-link" href="http://www.libreoffice.org/">LibreOffice.org</a></div>
<ul></ul>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>SLUG</dc:subject>
    
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2011-04-11T23:00:00Z</dc:date>
    <dc:type>Page</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/Booch_Lecture.ppt">
    <title>Booch_Lecture.ppt</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/Booch_Lecture.ppt</link>
    <description>Booch Lecture slides from "The promise, the limits, the beauty of software" video</description>
    
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>SLUG</dc:subject>
    
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2010-12-13T23:50:00Z</dc:date>
    <dc:type>File</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/BackupPC.mm">
    <title>BackupPC.mm</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/BackupPC.mm</link>
    <description>Backup PC Mindmap (Freemind or Freeplane).
These are my notes for setting up my BackupPC server and configuration of clients for Win7, XP, and Linux.
</description>
    
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>SLUG</dc:subject>
    
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2010-12-10T15:56:11Z</dc:date>
    <dc:type>File</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/pygowave">
    <title>PyGoWave</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/pygowave</link>
    <description>The OpenSource GoogleWave solution created before Google released their Java Server code.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2><a href="http://wave.google.com">GoogleWave</a></h2>
<p>  Was covered in last months talk.  It's not a completely easy thing to sum up exactly what it is, since it integrates a lot of independent internet services together in a unique collaborative way.  You get a Mail, Chat, Forum, Wiki, Interactive web tool with a unified interface.</p>
<p>  Google Wave is an interesting technology whos protocols are open, and Google has released some parts of their system as Open Source.</p>
<h2><a href="http://pygowave.net">PyGoWave</a></h2>
<p>  Was developed very shortly after GoogleWaves kickoff during the Summer of 2009.  The implementation was done in the Django web framework, complies with the released GoogleWave APIs, and appears to be a relatively good guess at what is behind some of the unknown portions of Googles Wave project.</p>
<p>  The mandatory <a href="http://pygowave.net/blog/">blog</a></p>
<h2>Dependency Installs on Fedora 11</h2>
<p>  Using one of the <a href="http://wiki.github.com/p2k/pygowave/pygowavedevelopmentquicksetup">online installation guides</a> :</p>

<pre>
    yum install python-twisted Django python-lxml python-simplejson 
    easy_install orbited django-registration anyjson carrot
</pre>
<h2>STOMP Install &amp; Configure</h2>
<p>  Partly from the <a href="http://wiki.github.com/p2k/pygowave/pygowaveserverinstallation">online setup guide</a> :</p>

<pre>
    yum install rabbitmq-server mercurial mod_python
    hg clone http://hg.rabbitmq.com/rabbitmq-stomp
    cd rabbitmq-stomp
    make RABBIT_SERVER_INCLUDE_DIR=/usr/lib/erlang/lib/rabbitmq_server-1.7.2/include
</pre>
<p>  <strong> above didn't work</strong></p>
<p>  From the <a href="http://www.rabbitmq.com/plugin-development.html#getting-started">rabbitmq.com site Plugin Developement</a> :</p>

<pre>
    yum install mercurial
    hg clone http://hg.rabbitmq.com/rabbitmq-public-umbrella
    cd rabbitmq-public-umbrella/
    make co
    # ... time ...
    make
    # ... time ...
    # Install the STOMP plugin
    mkdir rabbitmq-server/plugins
    cd rabbitmq-server/plugins
    ln -s ../../rabbitmq-stomp
    cd ..
    scripts/rabbitmq-activate-plugins
</pre>
<p>  Create the following config file in "/etc/rabbitmq/rabbitmq.conf" :</p>

<pre>
    NODENAME=rabbit
    NODE_IP_ADDRESS=0.0.0.0
    NODE_PORT=5672

    LOG_BASE=/var/log/rabbitmq
    MNESIA_BASE=/var/lib/rabbitmq/mnesia

    SERVER_START_ARGS='
      -rabbit
        stomp_listeners [{"0.0.0.0",61613}]
        extra_startup_steps [{"STOMP-listeners",rabbit_stomp,kickstart,[]}]'
</pre>
<p>  As root (from "rabbitmq-public-umbrella" above) run :</p>

<pre>
    ./rabbitmq-server/scripts/rabbitmq-server
</pre>
<p>  In another window as root you need to set the following :</p>

<pre>
    ./rabbitmq-server/scripts/rabbitmqctl change_password guest $RANDOM$RANDOM$RANDOM
    ./rabbitmq-server/scripts/rabbitmqctl add_user pygowave_client pygowave_client
    ./rabbitmq-server/scripts/rabbitmqctl add_user pygowave_server pygowave_server
    ./rabbitmq-server/scripts/rabbitmqctl set_permissions pygowave_client '^[^.]+\.[^.]+\.waveop$|^wavelet.direct$' '^[^.]+\.[^.]+\.(waveop|clientop)$|^wavelet.topic$' '^[^.]+\.[^.]+\.(clientop|waveop)$|^wavelet.direct$'
    ./rabbitmq-server/scripts/rabbitmqctl set_permissions pygowave_server '^[^.]+\.[^.]+\.waveop$|^wavelet_rpc_singlethread$|^wavelet\.(topic|direct)$' '^[^.]+\.[^.]+\.waveop$|^wavelet_rpc_singlethread$|^wavelet\.direct$' '^[^.]+\.[^.]+\.waveop$|^wavelet_rpc_singlethread$|^wavelet\.(topic|direct)$'
</pre>
<h2>PyGoWave Configuration</h2>
<p>  Partly from the <a href="http://wiki.github.com/p2k/pygowave/pygowaveserverinstallation">online setup guide</a> :</p>

<pre>
    yum install git
    git clone git://github.com/p2k/pygowave.git pygowave
    cd pygowave
    cp settings-template-development.py settings.py
    vi settings.py
    # Change setttings as necessary...
    #   ADMINS
    #   TIME_ZONE = 'America/New_York'
    #   SECRET_KEY
    python manage.py syncdb
    # At question answer "yes" and next prompts
    ./launch-pygowave-rpc
</pre>
<h2>Apache</h2>
<h3>  Create "/etc/httpd/conf.d/pygowave.conf" ::  </h3>
<p>    
      SetHandler python-program
      PythonHandler django.core.handlers.modpython
      SetEnv DJANGO_SETTINGS_MODULE settings
      PythonOption django.root /pygowave
      PythonDebug On
      PythonInterpreter pygowave_django
      PythonPath "['${pygowave}'] + sys.path"
    </p>
<p>    Alias /pygowave/media /srv/http/pygowave_project/media
    
      SetHandler None
      Options Indexes FollowSymLinks
      Order allow,deny
      Allow from all
    </p>
<p>    ProxyRequests Off
    ProxyPass /static http://localhost:9000/static 
    ProxyPass /tcp http://localhost:9000/tcp</p>
<p>  Turn off SELinux with "setenforce 0".</p>
<h2>Other</h2>

<ul>
<li><a href="http://wiki.github.com/p2k/pygowave-qt/">Non-web frontend in Qt</a></li>

</ul>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>SLUG</dc:subject>
    
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2010-04-12T23:20:00Z</dc:date>
    <dc:type>Page</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/more-than-just-another-release-the-new-features-of-ubuntu-9.10">
    <title>More Than Just Another Release: The New Features of Ubuntu 9.10</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/more-than-just-another-release-the-new-features-of-ubuntu-9.10</link>
    <description></description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[

<div class="layout">
<div id="controls"></div>
<div id="currentSlide"></div>
<div id="header"></div>
<div id="footer">
<h1>Seacoast Linux Users Group &#8226; 09-NOV-2009</h1>
<h2>More Than Just Another Release: The New Features of Ubuntu 9.10</h2>
</div>

</div>


<div class="presentation">

<div class="slide">
<h1>More Than Just Another Release</h1>
<h2>The New Features of Ubuntu 9.10</h2>
<h3>Matthew Craig</h3>
<h4>Copyright</h4>
</div>


<div class="slide">
<h1>Now with even more Brown!!!1</h1>
<div align="CENTER">
<img src="img/ubuntu910_000_brown.png" />
</div>
</div>

<div class="slide">
<h1>Where to Start? ...GNOME Empathy!</h1>
<ul class="incremental">
<li>One of many new features in GNOME 2.28</li>
<li>Ported from Nokia Internet Tablets</li>
<li><b>Mission Control</b> and <b>Telepathy</b> framework</li>
<li>Adium message style themes</li>
<li>Convenient video-chat is finally here!</li>
</ul>
</div>

<div class="slide">
<h1>The One Hundred Paper Cuts Project</h1>
<ul>
<li>A mission to improve the desktop experience</li>
<li>Driven by <i>Canonical</i> user interface teams for 9.10</li>
<li>A trivially fixable usability bug that the <b>average user</b> would encounter on his/her first day of using a brand new installation.</li>
</ul>
</div>

<div class="slide">
<h1>Redesigning the Boot: Upstart</h1> 
<ul>
<li><i>Canonical</i> developed (GPL)</li>
<li>Starts and stops processes</li>
<li>Replaces SysV <b>init</b> daemon</li>
<li>Already adopted in Fedora, Maemo, and webOS</li>
<li>May even replace <b>cron</b> one day</li>
</ul>
</div>

<div class="slide">
<h1>Redesigning the Boot: Upstart.</h1>
<ul>
<li>Event-based and may be received from any process</li>
<li>Jobs are defined in files placed in /etc/init</li>
<li>Using <i>start</i>, <i>stop</i>, and <i>status</i></li>
<li>Configuration file definitions are still unstable</li>
<li>More technical information at upstart.ubuntu.com</li>
</ul>
</div>

<div class="slide">
<h1>Redesigning the Boot: From old Usplash...</h1>
<div align="CENTER">
<img src="img/ubuntu910_002_usplash.png" />
</div>
</div>

<div class="slide">
<h1>Redesigning the Boot: ...to new Xsplash</h1>
<div align="CENTER">
<img src="img/ubuntu910_002_xsplash.png" />
</div>
</div>

<div class="slide">
<h1>Redesigning the Boot: A Modern Bootloader</h1>
<ul>
<li><i>GNU Project</i> developed (GPL)</li>
<li>Graphical interface and menu splashscreens</li>
<li>Scripting support, with functions and variables</li>
<li>Rescue Mode for unbootable cases, no more <i>Stage 1.5</i> errors</li>
<li>Boots to ISO files and supports more modern hardware (GPT)</li>
<li>Complete rewrite for modularity and portability</li>
</ul>
</div>

<div class="slide">
<h1>Redesigning the Boot: A Modern Bootloader.</h1>
<ul>
<li>Bye-bye <b>menu.lst</b>!  Hello <b>grub.cfg</b>!</li>
<li>Edit general configuration in <b>/etc/default/grub</b></li>
<li>Edit specific configurations in <b>/etc/grub.d</b></li>
<li>Finally run <b>update-grub2</b> to update <b>grub.cfg</b></li>
<li>Or... just install the <b>startupmanager</b> GUI</li>
</ul>
</div>

<div class="slide">
<h1>Rethinking the Installer</h1>
<div align="CENTER">
<img src="img/ubuntu910_003_slideshow.jpg" />
</div>
</div>

<div class="slide">
<h1>Redesigning the Filesystem: EXT4</h1>
<ul>
<li>A new default filesystem</li>
<li>Handles huge-sized files, huge-sized volumes</li>
<li>Backward compatible with mounting EXT2 and EXT3</li>
<li>Cutting-edge filesystem technologies</li>
<li>Requires Linux 2.6.28 - Ubuntu 9.10 uses 2.6.31</li>
</ul>
</div>

<div class="slide">
<h1>New Hardware Support: USB 3.0</h1>
<ul>
<li>USB 3.0?  Yep.  We got that covered.</li>
<li>So sorry, Windows 7 upgraders...</li>
<li>10x speed over USB 2.0 at 4 Gbit/s</li>
<li>ASUS P7P55D-E Motherboard ($299)</li>
<li>ASUS U3S6 PCI-E Card ($30)</li>
</div>

<div class="slide">
<h1>New Hardware Support: AMD-ATI Radeon</h1>
<ul>
<li>Kernel Mode Support (KMS)</li>
<li>Direct Render Management (DRM)</li>
<li>Open source "radeon" drivers</li>
</ul>
</div>

<div class="slide">
<h1>New Software: Ubuntu One</h1>
<div align="CENTER">
<img src="img/ubuntu910_014_ubuntu_one.png" />
</div>
</div>

<div class="slide">
<h1>New Software: Ubuntu Enterprise Cloud</h1>
<ul>
<li>Default only in Server Edition</li>
<li>Compatible API with the <i>Amazon EC2</i></li>
<li>Uses <b>Eucalyptus</b> client framework (BSD)</li>
<li><i>Canonical</i> developed <b>Landscape</b> management</li>
</ul>
</div>

<div class="slide">
<h1>GNOME Desktop 2.28: Epiphany</h1>
<ul>
<li>Gtk+ <b>WebKit</b> HTML render engine (LGPL, BSD)</li>
<li>Supports HTML5 features</li>
<li>Supports browser <i>extensions</i></li>
<li>Not installed by default</li>
</ul>
</div>

<div class="slide">
<h1>GNOME Desktop 2.28: Bluetooth</h1>
<ul>
<li>New <b>gnome-bluetooth</b> replaces <b>BlueZ</b> framework</li>
<li>Much better user interface and desktop integration</li>
<li>Better passkey configurations</li>
<li><b>NetworkManager</b> and <b>PhoneManager</b></li>
</ul>
</div>

<div class="slide">
<h1>GNOME Desktop 2.28: libClutter 1.0</h1>
<ul>
<li>Graphics library for creating user interfaces (LGPL)</li>
<li>Installed by default</li>
<li>Easy to use API to <i>OpenGL</i> / <i>OpenGL ES</i></li>
<li>2D interfaces, 3D interfaces, and animations</li>
<li>The stage.  The actors.  "Action!"</li>
</ul>
</div>

<div class="slide">
<h1>GNOME Desktop 2.28: Location Awareness</h1>
<ul>
<li><b>LibChamplain</b> display maps in Gtk+ applications</li>
<li>It is a <b>Clutter</b> "Actor" (widget)</li>
<li><b>GeoClue</b> uses WiFi, GPS, GSM, IP, and other identifiers</li>
</ul>
</div>

<div class="slide">
<h1>GNOME Desktop 2.28: Location Screenshots</h1>
<div align="CENTER">
<img src="img/ubuntu910_025_Capture-Conversations.png" />
<img src="img/ubuntu910_025_contact-information.png" />
</div>
</div>

<div class="slide">
<h1>GNOME Desktop 2.28: Evince</h1>
<ul>
<li>A PDF-comics-Impress viewing utility (GPL)</li>
<li>Improved security with <b>AppArmor</b> support</li>
<li>Adds annotation feature for PDF documents</li>
</ul>
</div>

<div class="slide">
<h1>GNOME Desktop 2.28: Animated Wallpapers</h1>
<ul>
<li>Space... the inevitable theme</li>
<li>Configured by a XML file</li>
<li>~/.gnome2/backgrounds.xml</li>
</ul>
<div align="CENTER">
<img src="img/ubuntu910_021_stellar.jpg" />
</div>
</div>

<div class="slide">
<h1>GNOME Desktop 2.28: GNOME-Media</h1>
<ul>
<li>Better integration to <b>Gstreamer</b></li>
<li>Includes <b>Sound Recorder</b></li>
<li>New volume control "capplet" (applet)</li>
</ul>
</div>

<div class="slide">
<h1>New Software: Software Center</h1>
<div align="CENTER">
<img src="img/ubuntu910_023_software-center.png" />
</div>
</div>

<div class="slide">
<h1>New Software: Quickly</h1>
<ul>
<li><i>Canonical</i> and Ubuntu developed (GPL)</li>
<li>Create new applications quickly</li>
<li>... Note, not called "easily"</li>
</ul>
</div>

<div class="slide">
<h1>New Software: Quickly - Templates</h1>
<ul>
<li>Makes extensive use of templates</li>
<li>Installs with Ubuntu-Template</li>
<li>... which sets-up <b>Glade</b>, <b>pyGTK</b>, and <b>CouchDB</b></li>
</ul>
</div>

<div class="slide">
<h1>New Software: Quickly - Workflow 1of2</h1>
<ul>
<li>$quickly create ubuntu-project MyProgram</li>
<li>$cd MyProgram</li>
<li>$quickly glade</li>
<li>$quickly edit</li>
</ul>
</div>

<div class="slide">
<h1>New Software: Quickly - Workflow 2of2</h1>
<ul>
<li>$quickly run</li>
<li>$quickly package</li>
<li>$quickly release</li>
</ul>
</div>

<div class="slide">
<h1>New Software: Firefox 3.5</h1>
<div align="CENTER">
<img src="img/ubuntu910_028_firefox.png" />
</div>
</div>

<div class="slide">
<h1>Hope you had fun...</h1>
<div align="CENTER">
<img src="img/ubuntu910_029_end.png" />
</div>
<div align="CENTER">
<h4>Matthew Craig</h4>
</div>
</div>

</div>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Matthew Craig</dc:creator>
    <dc:rights>Copyright Matthew Craig</dc:rights>
    
      <dc:subject>SLUG</dc:subject>
    
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2009-11-23T21:15:00Z</dc:date>
    <dc:type>Page</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/Mer_Project_Introduction.pdf">
    <title>Mer_Project_Introduction.pdf</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/Mer_Project_Introduction.pdf</link>
    <description>Matthew Craig's talk in PDF format. </description>
    
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>admin</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>SLUG</dc:subject>
    
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2009-06-09T13:30:00Z</dc:date>
    <dc:type>File</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/bazaar">
    <title>Bazaar</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/bazaar</link>
    <description>A talk on the Bazaar Version Control System</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>Why would I want a Version Control System (VCS)?</h2>
<dl>
<dt>  Code backup</dt>
<dd>VCS can generally handle small lapses in judgment
  where you simply want to revert to an older version, or see what you
  had before.  For a full backup affect you really want to have an
  up-to-date repository on a remote system AND the remote system
  should be on a reasonable backup schedule.</dd>
<dt>  Ability to call for a "do-over" ( with benefits )</dt>
<dd>You can try
  something, and if it doesn't work out you can revert to any checked
  in copy from the past.  That's fairly powerful in itself, but wait
  there's more.  You have the ability to revert the entire working tree
  or just a file or two.  Most VCSs can also show you, or even apply,
  all the code patches done between a sequence of revisions.  Now you
  can revert AND cherry pick all good stuff.</dd>
<dt>  Documents code evolution</dt>
<dd>If version control is a new concept to
  you, you might not fully appreciate the importance of committing
  transactions at an appropriate granularity.  Commits should be done
  at a granularity that keeps track of enhancements and new
  functionality.  This can help document progress and allows good
  isolation of functionality into clear chunks of code/effort.</dd>
<dt>  Synchronization between multiple locations</dt>
<dd>Normally it's
  extremely frowned upon to commit broken code to a VCS.  For shared
  Centralized servers this is truly a sin.  A really nice feature of
  Distributed VCS is that you can bend a the rules a little and update
  your own repo as needed.  If you share YOUR repo between a desktop
  and laptop (or work and home) you might want to commit changes at
  "convenient" points, even if not generally deemed appropriate.</dd>
<dt>  Not just for Source Code anymore!</dt>
<dd>Also consider non-source code
  implementations.  Examples might be complex systems with
  configuration files and/or varying content.  Web-server instances
  are non-code trees that are commonly put under Version Control.  The
  base of the SLUG Plone site is now under Bazaar Version Control.  A
  side benefit of this is that it's easy to create a "preview" server,
  or another instance to test an upgrade on.</dd>
<dt>  Allows deeper cleaning of your source.</dt>
<dd>One shock to me, was that
  I could get rid of commented code I left around "just in case I ever
  need that again".  If you commit with a reasonable granularity and
  change messages, it should be easy to locate older code when needed.
  When you have an easy option of getting something back you clean
  more.  This tends to snowball resulting in much nicer looking code as 
  well as a reduced tendency put off Refactoring rough sections.</dd>
<dt>  Collaborative benefits</dt>
<dd>It would be nearly impossible to
  collaborate more than just superficially without a VCS.  You can
  release archived source and accept patches via email, but it doesn't
  scale.  In fact most of us first see VCS when we want to use
  somebody's source, or we are forced by employers to work together on
  a project.</dd>
</dl>
<h2>The main reasons I like Bazaar better than Mercurial and GIT</h2>

<ol>
<li> Well done documentation and internal "bzr help"</li>
<li> Consistently clean interface</li>
<li> Automatically edits config files. (eg. "bzr whoami" &amp; "bzr ignore")</li>
<li> Usage model that allows Centralized VCS ("bzr checkout --lightweight")</li>
<li> All platform support (Unix, Windows, Mac)</li>
<li> Nearly all pure Python.</li>
<li> Slowest of them all, but still fast enough.</li>
<li> Seems to have a clear Plugin support and feature deprecation.</li>

</ol>
<p>  GIT is blazingly fast.  It's also extremely complex to use.  It's
  non-Unix support is arguably not as good as the other two.  Part of
  the support problem is that GIT is written in A LOT of languages.
  If speed is the only concern then GIT wins.</p>
<p>  I find Mercurial to be nearly identical to Bazaar.  The two match
  almost almost perfectly feature for feature.  Mercurial has a speed
  advantage.  The Merge functionality of Bazaar is much simpler.
  Bazaar doesn't make you edit config files.  Bazaar is unique in that
  it has a usage model ("bzr checkout --lightweight") that allows for a
  Centralized VCS.</p>
<p>  Bazaar seems to have taken the time to find the simplest way to
  handle things, made it as user friendly as possible, and documented
  it well.  In my opinion that is a great methodology to build a
  project on.  I'm willing to trade off a little speed to achieve
  those goals.  A clean design also makes it easier to port, resulting
  in good support on all platforms.  Obviously Python helps make
  Mercurial and Bazaar more portable.</p>
<h2>Bazaar Version Control System (VCS)</h2>
<h3>  The Bazaar homepage (<a href="http://bazaar-vcs.org">http://bazaar-vcs.org</a>)</h3>

<ul>
<li>large icons across the top, allow quick access for
<ul>
<li>Documentation</li>
<li>Downloads</li>

</ul>
</li>

</ul>
<p>    The homepage is a good example of the clean design of Bazaar in
    general.  It's simple and yet effectively supplies ones needs.
    Downloads are easily located, as well as good documentation and
    tutorials.</p>
<h3>  Other reviews I used to build my own opinions</h3>

<ul>
<li><a href="http://www.infoq.com/articles/dvcs-guide">http://www.infoq.com/articles/dvcs-guide</a></li>
<li><a href="http://www.python.org/dev/peps/pep-0374/">http://www.python.org/dev/peps/pep-0374/</a></li>

</ul>
<h2>Install</h2>
<h3>  Full support exists for most platforms.</h3>

<ul>
<li>Fedora Linux (as root):
<pre>
      yum -y install bzr
</pre>
</li>
<li>Windows &amp; Macintosh
      -- Download the appropriate installable package from <a href="http://bazaar-vcs.org">http://bazaar-vcs.org</a></li>

</ul>
<h2>Getting help</h2>

<ul>
<li>Short list of commands:
<pre>
      bzr help
</pre>
</li>

</ul>
<p>  This help list is purposefully short.  In comparison to Mercurial
  this not very long or intimidating when you first look at it.  It's
  also NOT complete.  See the next two commands for the full listings.
  Note that the following two commands are actually in the short list
  from "bzr help", it's just you might not notice them if I didn't
  call attention to them.</p>

<ul>
<li>Full list of commands:
<pre>
      bzr help commands
</pre>
</li>
<li>Full list of topics:
<pre>
      bzr help topics
</pre>
</li>

</ul>
<p>  Further help might require the Website 
  Documentation and Tutorials.</p>
<p>  Do not rule out experimentation with /tmp/ based Bazaar VCS Repos, often
  this yields quick answers to your exact question.  It also builds
  confidence without the risk involved in working with your real data.
  If testing something that's only possible to do with real data just
  "Branch" your real code into a /tmp/ test VCS.</p>
<h2>Setup</h2>

<ul>
<li>Who are you?:
<pre>
      bzr whoami "Jon E. Dough &lt;jon@example.org&gt;"
</pre>
</li>

</ul>
<p>  At this point in a Mercurial setup you would be asked to edit
  configuration files in your home directory.  This approach seems a
  lot friendlier, and I'm a Unix user, I can only imagine how scary that
  must be for Win &amp; Mac users.</p>
<h2>Creating a new project</h2>
<p>  Now navigate to some directory tree you want to have managed by
  Bazaar. The Initialization step must done done at the base of the
  source area. The other commands can occur in any sub-directories.</p>

<ul>
<li>Navigate to the root of your source tree and initialize it:
<pre>
      cd /tmp/project
      bzr init
</pre>
</li>

</ul>
<p>  All the "bzr init" command does is create a "./.bzr" directory.</p>
<p>  For safely lets <em>not</em> include any ".svn" info that might exist.  It
  would be a bad thing to muck with the Subversion (.svn) info for an
  active project.</p>

<ul>
<li>To ignore all ".svn" files:
<pre>
      bzr ignore .svn
</pre>
</li>

</ul>
<p>  Here is another place where Mercurial would have you editing config
  files.  In Bazaar those files do exist, but you're also given these
  handy little hooks you can use instead.  It might not seem like
  much, but it all adds up.</p>
<h3>  Removing all traces of Bazaar</h3>
<p>    EVERYTHING is stored in one top-level .bzr directory:</p>

<pre>
        cd /tmp/project
        rm -rf .bzr
</pre>
<p>    There is no other pollution a file tree being managed by Bazaar.
    This is a huge contrast to how Subversion works, where it puts
    .svn directories EVERYPLACE.</p>
<h2>Managing files under Bazaar Version Control</h2>
<h3>  Adding managed content</h3>
<p>    Until you tell Bazaar what files you want it to manage and Commit
    them you will only have an empty repository.  First we "Add"
    files/directories we want managed then we'll need to "Commit" their
    current state to the VCS Repo.</p>

<ul>
<li>Three examples to add content:
<pre>
        bzr add file.c
        bzr add src/
        bzr add .
</pre>
</li>

</ul>
<h3>  Checking managed content</h3>

<ul>
<li>Find out what has been modified and/or not being managed:
<pre>
        bzr status
</pre>
</li>
<li>Find what is being ignored:
<pre>
        bzr ignored
</pre>
</li>

</ul>
<h3>  Removing managed content</h3>

<ul>
<li>You have two options
<ol>
<li> Delete files and/or directories directly on the file-system.
<ul>
<li>No safety net can be provided by Bazaar</li>

</ul>
</li>
<li> Use the "bzr remove" command (like you would with Subversion).
<ul>
<li>Bazaar will remove unchanged managed content, or ask for
            confirmation of content it would not be able to get back
            with a "revert".</li>

</ul>
</li>

</ol>
</li>

</ul>
<p>    In both cases the files and/or directories will be immediately
    deleted in the working tree and deleted from the latest repo
    revision on the next "commit".  If it was ever under Version Control
    it will still exist someplace in an earlier revision inside the
    VCS.</p>

<ul>
<li>Odd case of "add and remove before commit":
<pre>
        bzr add delme/
        bzr remove delme --keep
</pre>
</li>

</ul>
<p>    The "--keep" is confusing. But think how scary it is to issue a
    command called "remove" on your source tree? If you already had the
    files under revision control Bazaar will delete them, since Bazaar
    could easily get them back for you.  But in this particular case
    Bazaar does not yet have a copy, so they would be lost if anything
    was actually deleted.  This "annoyance" really is a "feature" for
    our own safety.</p>
<h2>Committing changes</h2>
<p>  So far we have only shown how to create a local Bazaar instance.
  Later we will see that Bazaar instances not only remember where they
  where "pulled" from (and "push" to) but can also be used like a
  Central Non-Distributed Repository (like Subversion).  Fore now just
  note that the "commit" command updates the repository, which can be
  either a local or remote Bazaar instance, depending on how it was
  created.</p>

<ul>
<li>Commit your changes (locally, unless this was a checkout):
<pre>
      bzr commit -m "initial import of this project"
</pre>
</li>

</ul>
<p>  Now that the "cat is out of the bag", you know that there will be a
  repository type I'll call "Checkout".  You can still "bzr commit" in
  a Checkout, but it will automatically update both the local repo and
  the upstream version you originally Checked-out.  If for some reason 
  the upstream is unreachable, you can "bzr commit --local" to update
  only the local instance.  This might be a very common thing if your
  Checkout was done to a laptop which is frequently used without a
  network connection.</p>

<ul>
<li>To push the local repo contents upstream:
<pre>
      bzr push {BazaarRepoURL}
      # Future "push" commands will default to the last URL used.
      bzr push
</pre>
</li>

</ul>
<p>  After pushing to a URL once, the local instance will remember who it
  pushes to, and will default to it on future "push" commands when a
  URL is not supplied.  The same thing is true for the "pull" command,
  which is stored separately.  This allows for an instance to remember
  separate upstream and downstream branches.</p>
<h2>Commands just like CVS &amp; SVN </h2>
<dl>
<dt>  bzr diff file.c</dt>
<dd>Show the difference between the last checked in version of "file.c" and the one it the working tree.</dd>
<dt>  bzr cat file.c</dt>
<dd>Display the contents of the last checked in version of "file.c"</dd>
<dt>  bzr revert file.c</dt>
<dd>replace the existing "file.c" with the last checked in version of "file.c"</dd>
<dt>  bzr mv file.c file2.c</dt>
<dd>Moves "file.c" to "file2.c" in the working directory AND informs the repo to do the same on the next "commit" command.</dd>
</dl>
<h2>Commands just like CVS &amp; SVN (continued)</h2>
<dl>
<dt>  bzr remove file.c</dt>
<dd>Deletes the "file.c" from the working directory AND informs the repo to do the same on the next "commit" command.</dd>
<dt>  bzr commit -m "a really good comment"</dt>
<dd>Commits the working directory changes to the repository.</dd>
<dt>  bzr checkout {BazaarRepoURL}</dt>
<dd>Checks out the given Repository.  A checkout like this will behave similarly to non-distributed VCS, in that future "commit" commands will attempt to update the checked out URL directly.</dd>
<dt>  bzr diff</dt>
<dd>Shows the differences for ALL changed files in the working tree.</dd>
</dl>
<h2>init vs. checkout vs. branch</h2>
<p>  Keep in mind that a repositories Working Tree can be Outdated or
  Modified from the most recent version in that repo.  And that this is
  completely independent of each repositories synchronization with
  other branches, both upstream and downstream.  This is a complex
  system and it's easy to loose track.  Remember that the beauty of
  Bazaar is that it keeps this all as simple as possible, and that if
  offers a number of usage patterns that manages some of the complexity
  for you.</p>
<h3>  bzr init</h3>
<p>    When covering "commit" above we talked about only knowing about a
    locally managed Bazaar instances (created with a "bzr init").
    This is the simplest Bazaar instance possible.  This is
    both the origin and base of most of these other types.</p>
<p>    At this stage it does not know about any other other Bazaar
    repositories.  It stands alone, on the local file-system.
    Everything is contained within the single ".bzr" directory at the
    instance root.</p>
<h3>  bzr branch {BazaarRepoURL} {localpath}</h3>
<p>    The "branch" command creates a new repository and automatically
    pulls the contents of an upstream neighbor.  Any "commit" commands
    are NOT automatically shared with the upstream neighbor.  The two
    Branches are said to have "diverged" as soon as one of them has been
    changed.  The new Branched version may update itself from the
    upstream neighbor using the command "bzr pull".  If permission
    allows, the Branched version may also <em>push</em> it's changes back
    upstream with a "bzr push" command.</p>
<h3>  bzr checkout {BazaarRepoURL}</h3>
<p>    This is the special instance that by default behaves like a
    non-distributed centralized repository.  It's similarly to a
    "Branch", except that "commit" commands are automatically pushed
    upstream.</p>
<p>    A very interesting option to this command is "--lightweight".  In
    a Lightweight Checkout the "repository VCS data" is not even
    copied to the locally created repository.  Any meta-data checks
    will require contact with the upstream repository, but substantial
    savings on local disk space makes this option extremely useful in
    some circumstances.  Most useful in situations where very large
    files are under VCS mainly for synchronization purposes.</p>
<p>    Note that a Checkout (not --lightweight) does actually contain a
    complete distributed copy of all the repository data.  Several
    convenience feature exists to take advantage of the completeness
    of this local repo.  Bazaar has provided a "--local" option to
    "bzr commit" that will commit the changes locally.  So while a
    "bzr commit" will fail on a network disconnected laptop, a "bzr
    commit --local" will cache the transaction for a future network
    connected commit.</p>
<h3>  Transitions</h3>
<p>    Just to complete the confusion a Branch can be made into a
    Checkout by using the "bzr bind {BazaarRepoURL}" command.
    Likewise a Checkout can be made into a Branch using the "bzr
    unbind" command.  A stand alone instance can also mirror an
    existing repository by using the "bzr bind {BazaarRepoURL}"
    command.</p>
<p>    Aditionally a Bazaar VCS can be "Reconfigured" into another type
    using the "bzr reconfigure" command.  Let's say you decide that
    you no longer need to have local storage taking up disk space for
    a Branched instance.  </p>
<p>    Reconfigure existing "/tmp/proj" into a Lightweight Checkout:</p>

<pre>
       bzr reconfigure --lightweight-checkout /tmp/proj
</pre>
<p>  In the world of Distributed VCS (DVCS) it's easy to get overwhelmed
  by having too many branches.  Some thought should be put into the
  structure you want to support.  The Checkout usage model for Bazaar
  is a nice tool that helps indicate precedence, while still providing
  full functionality.</p>
<h2>Checking out a new working tree</h2>
<p>  Alright why bother with DVCS if we're not going to Distribute the
  VCS.  Lets assume we have a repository that we want to
  use/mirror/branch.  We'll see one way it can be created in the next
  section "Off system storage", but any local path or URL accessible
  repo specification will work.  Lets get used to using the most
  likely URL format of "sftp://server/tmp/common-project", which will
  use the SFTP/SSH protocol to access host "server" Bazaar repo path
  "/tmp/common-project".</p>
<p>  In our first case we are not really Distributing the VCS, we are
  distributing the working tree and placing a reference to the
  originating VCS.</p>
<h3>  Checking out the "sftp://server/tmp/common-project"</h3>

<ul>
<li>Checkout as "/tmp/proj1" (no local VCS repo created):
<pre>
      bzr co sftp://server/tmp/common-project --lightweight /tmp/proj1
</pre>
</li>
<li>Checkout as "/tmp/proj2":
<pre>
      bzr checkout sftp://server/tmp/common-project /tmp/proj2
</pre>
</li>

</ul>
<p>  Note that "co" is a common abbreviation for "checkout".  They really
  are the same thing I'm just using both so that it's less scary when
  you see it in the future. ;)</p>
<p>  Commits done on both "/tmp/proj1" and "/tmp/proj2" will attempt to
  update "sftp://server/tmp/common-project".  Commands accessing meta
  data, like "bzr log" will however behave differently.  Because
  "/tmp/proj1" does not contain any VCS information it must retrieve
  log data from "sftp://server/tmp/common-project", while "/tmp/proj2"
  can answer using only local data.</p>
<h3>  Branch of "sftp://server/tmp/common-project"</h3>

<ul>
<li>Branch as "/tmp/proj3":
<pre>
      bzr branch sftp://server/tmp/common-project /tmp/proj3
</pre>
</li>

</ul>
<p>  A "Branch" is just a more detached version of a "Checkout".  In fact
  later you will see how easy it is to Transition a Bazaar Repo from
  either one to the other.  </p>
<p>  The Branch "/tmp/proj3" differs from the Checkout "/tmp/proj2" only
  in that "bzr commit" commands to not automatically get "Pushed" to
  "sftp://server/tmp/common-project".  A "bzr commit" in "/tmp/proj3"
  only updates the local VCS, the Upstream VCS is not affected until
  the execution of a "bzr push" command.</p>
<h2>Off system storage</h2>
<p>  If you want to store a Bazaar VCS instance back on a central server
  there are a lot of different options.  There is a container to
  shared branches with a common roots.  There are treeless Repos which
  have no Working Tree, just the .bzr directory storing the raw repo
  data.  There is the "bzr server" command which will run a network
  server.  And you may serve your Bazaar files over HTTP(S) or (S)FTP.</p>
<p>  Lets focus on the easiest choice for Linux "sftp://system/path".
  Your SSH passkeys are used for all of the "sftp:" based paths. So
  anyplace you can SSH into without a password you can checkout and
  commit code to (file-system base permissions allowing).  If no
  passkeys exist you will be prompted for the password, the current
  user is assumed.  Note that the remote server DOES NOT NEED any
  Bazaar code installed on it.</p>

<ul>
<li>Create storage on a central server for a local repo:
<pre>
      cd /tmp/project
      bzr push sftp://server/tmp/common-project
      # NOTE: any file path works /tmp is ONLY an example
      # A complete independent VCS Repo is created there. 
</pre>
</li>
<li>Update the central server with a locally committed change:
<pre>
      cd /tmp/project
      # make changes
      bzr commit -m "Changed ..."
      bzr push
</pre>
</li>

</ul>
<p>  Essentially you have created a Branch.  It might help to think of
  your local copy as the "Development VCS" or "Experimental VCS" and
  the central server version as the "Release VCS".</p>
<h2>Branching &amp; Merging</h2>
<p>  Branching is creating another independently managed copy of the
  original one. Since both can be updated independently they may
  Diverge.</p>

<ul>
<li>To branch as "/tmp/branch" the Bazaar Repo "/tmp/main":
<pre>
      bzr branch /tmp/main /tmp/branch
</pre>
</li>

</ul>
<p>  At this point both projects are active. You can edit and commit to
  both independently.</p>

<ul>
<li>If changes are made on the "main" code base and you want to make
    them on a "p2" branch:
<pre>
      cd /tmp/branch
      bzr merge
      # It defaults to it's upstream branch.
      # Conflicts may occur, see next section "Handling Conflicts"
      # So far, only the working directory has been modified.
      bzr commit -m "merged in latest from main project"
</pre>
</li>
<li>You can also merge the "branch" back into "main":
<pre>
      cd /tmp/main
      bzr merge /tmp/branch
      # Conflicts may occur, see next section "Handling Conflicts"
      # So far, only the working directory has been modified.
      bzr commit -m "merged in latest branch"
</pre>
</li>
<li>Alternately you could Mirror the Merged "branch" back to "main":
<pre>
      cd /tmp/branch
      bzr push /tmp/main
      # We must supply a downstream branch the first time.
</pre>
</li>

</ul>
<p>  Regardless of how you perform the Merge both branches will end up
  up with complete transaction logs.</p>
<h2>Handling Conflicts</h2>
<p>  Sometimes during a "bzr merge" or "bzr update" Bazaar finds
  conflicting instructions from two Repos.  How it handles these
  situations is to generally holler "Conflict" and ask you to resolve
  them.  </p>
<p>  When it first occurs it's a little scary.  First there is all that
  hollering, then you find a number of odd files in your working tree
  that you didn't put there.  At least that was my reaction, which
  then prompted a look through the documentation to see if it had
  blown up and how I was supposed to act.</p>
<p>  Turns out it's pretty easy.  First you can generally ignore the
  extra files.  If it is complaining about "somefile" there could be
  multiple versions with additional suffixes like: "somefile.BASE",
  "somefile.OTHER" and "somefile.THIS".  You really only need to edit
  the one file that you normally have in your archive, our "somefile".
  In that file you'll find a section that will be marked with a lines
  starting with "&lt;&lt;&lt;&lt;&lt;&lt;&lt;" and "&gt;&gt;&gt;&gt;&gt;&gt;&gt;", and there will be a "======="
  line separating your two choices.  You should review the choices and
  pick the one you want to continue forward with, or you may decide to
  manually merge them both together.  Either way you make those edits
  and save out the file in the normal manner.</p>
<p>  You may can explicitly tell Bazaar which file is resolved or simple
  leave of the file to recheck all the ones it marked with conflicts.</p>

<ul>
<li>near duplicate changes:
<pre>
      # edit the Conflicting file
      # Pick the changes you want or merge both
      bzr resolve
</pre>
</li>
<li>questionable files:
<pre>
      # Place the version of "somefile" wanted in place (OR delete it)
      bzr resolve somefile
</pre>
</li>

</ul>
<p>  It's possible that one choice is there should be NO file.  In that
  case it's a little hard to EDIT it to the state you want.  So you
  may have to use the filename option to state that the lack of file
  does indicates your resolve to leave it out.  If however the file
  should be a part of this you may want to copy one of the "suffixed"
  files into place.</p>
<h2>Other Questions</h2>
<dl>
<dt>    Patch Queues</dt>
<dd>I believe the LOOM Plugin can handle one or more separate Bazaar repositories of patches that can selectively be applied to a single code base.  The "LOOM" determines which threads are woven into the resulting product.  These threads (Bazaar repositories) can be enabled, disabled and set as the active thread to apply changes too.  I have NOT used this functionality yet.</dd>
<dt>    Line termination</dt>
<dd>The problem here is that textual content like (PERL or Python) that run on Windows and Unix may not like changes in line termination between \r\j and \j.  I can say that my Python code has worked perfectly when created and edited on Unix and Windows and checked into a Linux BZR repo.  They do explicitly state line termination support on the latest versions of Bazaar.</dd>
</dl>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2009-05-11T23:15:00Z</dc:date>
    <dc:type>Page</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/upnp-dlna">
    <title>UPnP/DLNA</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/upnp-dlna</link>
    <description>How to serve files to modern hardware, like LCD TVs, Receivers, Game Consoles, PDA devices.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>What is UPnP?</h2>
<p>  <a href="http://en.wikipedia.org/wiki/UPNP">Universal Plug and Play (UPnP)</a> is a set of computer protocols promulgated by the UPnP Forum. The goals of UPnP are to allow devices to connect seamlessly and to simplify the implementation of networks in the home (data sharing, communications, and entertainment) and in corporate environments for simplified installation of computer components.</p>
<h2>What is DLNA?</h2>
<p>  The <a href="http://en.wikipedia.org/wiki/Digital_Living_Network_Alliance">Digital Living Network Alliance</a> is an international, cross-industry collaboration of consumer electronics, computing industry and mobile device companies who seek to deliver an interoperability framework and design guidelines that become open industry standards.</p>
<p>  <a href="http://www.dlna.org">http://www.dlna.org</a></p>
<h2>What can these technologies do for me?</h2>
<p>  I use my PS3 to view my family photos, 
  and play my mp3 files served off my Linux box.</p>
<p>  My Nokia N810, and XBox Media Center also have clients that could utilize 
  the UPnP servers that I have setup on my Linux server.</p>
<p>  When I purchased my new LCD TV I noted that some models also have DLNA clients built in.  
  That means you could have a REALLY expensive, and large, digital picture frame.</p>
<p>  I've also noted some newer AV Receivers have network connection capabilities which,
  I believe, may also have DLNA clients.</p>
<h2>How to share the files from Linux (UPnP/DLNA):</h2>
<p>  <a href="http://ushare.geexbox.org/">ushare</a></p>
<p>  <a href="https://coherence.beebits.net">coherence</a></p>
<p>  <a href="http://fuppes.ulrich-voelkel.de/">fuppes</a></p>
<h2>ushare</h2>
<p>  The simplest UPnP server.  
  Only takes command line arguments.</p>
<h3>  For my PS3 I run: </h3>
<p>    "ushare -i eth1 -d -n anthill -c ~/data/mp3/ -c ~/data/camera/ $*"</p>
<h2>Coherence</h2>
<p>  The Python contender!  
  It also seems to be one of the more full featured in the conversion and proxy departments.
  Doesn't sort alphabetically.  
  Trims of the file extensions so the PS3 doesn't look for EXIM data in my JPG files.
  (See attached configuration file and run script).</p>
<h2>fuppes</h2>
<p>  A little more setup and a few more features.  
  I never really got this one working on Fedora8.</p>
<h2>What else can you do with UPnP/DLNA:</h2>
<p>  <a href="http://elisa.fluendo.com">Elisa</a> Media Center.</p>
<p>  <a href="http://geexbox.org">GeeXboX</a> is a free embedded Linux distribution which aims at turning your computer into a so called HTPC (Home Theater PC) or Media Center.</p>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>SLUG</dc:subject>
    
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2009-01-12T22:45:44Z</dc:date>
    <dc:type>Page</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/genshi-talk">
    <title>Genshi Talk</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/genshi-talk</link>
    <description>XML processing using Genshi templates in Python to output GoogleEarth KML files from live APRS data feeds.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Lets say you want to programatically output something in XML.  </p>
<h2>Here are three example approaches to generating XHTML in Python</h2>
<p>  All of the following assume these variable settings:</p>

<pre>
        title='My Example'
        text='&lt;B&gt;This&lt;/B&gt; example is boring.'
</pre>

<ol>
<li> Directly printout the desired XHTML :
<pre>
        print '&lt;XHTML&gt;&lt;BODY&gt;&lt;H1&gt;', title, '&lt;/H1&gt;', text ,'&lt;/BODY&gt;&lt;/XHTML&gt;'
</pre>
</li>
<li> Using an XML library like <a href="http://effbot.org/zone/element-index.htm">ElementTree</a> :
<pre>
        from elementtree.SimpleXMLWriter import XMLWriter
        import sys
        w = XMLWriter(sys.stdout)
        html = w.start("html")
        w.start("body")
        w.element("h1", title)
        w.data(text)
        w.close(html)
</pre>
</li>
<li> With a templating language like <a href="http://genshi.edgewall.org/">Genshi</a> :
<pre>
        &lt;xhtml&gt;&lt;body&gt;&lt;h1 py:content="title"&gt;Ex Title&lt;/h1&gt;${text}&lt;/body&gt;&lt;/xhtml&gt;
</pre>
</li>

</ol>
<h2>Which one is better?</h2>
<h3>  Some goals (our goals?):</h3>

<ol>
<li> Easy to read</li>
<li> Re-useable </li>
<li> Easy to maintain</li>
<li> Be able to use syntax checking tools</li>

</ol>
<h2>My Example</h2>
<p>  For awhile now I've taken motorcycle trips, then downloaded my gps data and translated the "track" files into KML for overlaying onto GoogleMaps.  A few times I've even gone through the KML adding extra information.  I've changed multi day trips so that each days route appears in different colors.  I've even created little photo icons that when clicked pop up thumbnail photos of the location and contain links to the full digital photo.  It seemed like the next step was to automatically process my track files and photos into KML script that could do it all automatically.</p>
<p>  Well that isn't where I ended up starting.  After learning about APRS, Tucker went out and got his Ham Radio license.  APRS is an amature radio service that accepts packets containing GPS position information and some small amount of data.k  These packets are stored for a few days before being flushed.  Before being flushed it's possible to retrieve the packets over the Internet.  That gave me the idea to write a python script to pull that data and write out my own KML.  After some web searches I stumbled upon a best practices example using a templating prodcut called Genshi.</p>
<p>  Programmers always like to make tools.  By making my Genshi template, very flexible, I hope to reuse much of it on other projects.  Eventually the scripts evolved into a small script, a library and the Genshi template.  This early example shows the power of these techniques.  We may also be able to extend this simple start to do more.</p>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>SLUG</dc:subject>
    
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2008-05-12T23:00:00Z</dc:date>
    <dc:type>Page</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/evas-talk-april-2008">
    <title>EVAS talk (April 2008)</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/evas-talk-april-2008</link>
    <description></description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>The Enlightenment Window Manager was big in the late 90's.  They're not dead yet.  Visit their <a href="http://www.enlightenment.org">homepage</a> for more info on what they've been up to all this time.</p>
<p>Lets define some of the components of this <a href="http://www.enlightenment.org/p.php?p=about&l=en">system</a> :</p>
<dl>
<dt>DR17</dt>
<dd>The Enlightenment Window Manager Development Release version 17</dd>
<dt>EFL</dt>
<dd>The Enlightenment Foundation Libraries, used by E17 and other apps (build it and they will come).<h2>  Sub parts of EFL</h2>
<dl>
<dt>    EWL</dt>
<dd>a complete widget library built on all the other components of the EFL</dd>
<dt>    EVAS</dt>
<dd>provides a highly optimized canvas library</dd>
<dt>    Ecore</dt>
<dd>provides a simple and modular abstraction interface and advanced event management including timers</dd>
<dt>    EDB</dt>
<dd>provides a compact database format for intuitive and easy configuration management (including the storing of binaries)</dd>
<dt>    EET</dt>
<dd>provides an integrated and flexible container that ends the traditions of providing themes in tarballs</dd>
<dt>    Edje</dt>
<dd>provides a revolutionary library and tool set for completely abstracting application interfaces from their code, including a complex and flexible method of designing interfaces. EWL provides a complete widget library built on all the other components of the EFL</dd>
</dl>
</dd>
</dl>
<h2>Installation</h2>
<p>  A Fedora Repository is available at 
  <a href="http://optics.csufresno.edu/~kriehn/fedora/repository.html">http://optics.csufresno.edu/~kriehn/fedora/repository.html</a>
  Previously it was available from <a href="http://sps.nus.edu.sg/~didierbe/index.html">http://sps.nus.edu.sg/~didierbe/index.html</a> but has been passed long to somebody better able to keep ontop of it.</p>
<p>  Since the new repo was down, on my Fedora8 I used:</p>

<pre>
    wget http://sps.nus.edu.sg/~didierbe/share/dc-f7-yum-repo-1.0-1.fc7.noarch.rpm
    rpm -Uvh dc-f7-yum-repo-1.0-1.fc7.noarch.rpm

    yum -y install ecore-devel edje-devel evas-devel
</pre>
<p>  This didn't seem to work:</p>

<pre>
    easy_install Cython pyrex python-evas python-edje python-ecore
</pre>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2008-04-14T23:00:00Z</dc:date>
    <dc:type>Page</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/panda3d">
    <title>Panda3D</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/panda3d</link>
    <description>Virtual Worlds scripted in Python.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>Why call it Panda3D</h2>
<p>  Panda3D stands for "Platform Agnostic Networked Display Architecture"</p>
<h2>Timeline</h2>
<dl>
<dt>  1997-2000</dt>
<dd>Earlier product DWD (Disney's World Designer) was used to create DisneyQuest Virtual Reality Attractions</dd>
<dt>  <strong>2000</strong></dt>
<dd>The Disney VR Studio embarked on the Toontown Online project and enhanced DWD to become Panda3D</dd>
<dt>  <strong>2002</strong></dt>
<dd>Disney's VR Studio decided to make the engine open source</dd>
</dl>
<h2>Interactive Scripting</h2>
<p>  The back-end system is done in C++, then a with a C-API creation tool called "Interrogate" (similar to SWIG) helps produce the scripting language interface.
  Originally "Squeak" then "Python" but built such that it could be any language that is capable of calling a C API.
  The goal was to have a "late binding scripting" language, like Scheme, Python, Smalltalk. </p>
<h2>Features:</h2>

<ul>
<li>Multiple underlying rendering APIs: DirectX/OpenGL</li>
<li>Python scripting interface</li>
<li>Programming on the fly using interactive scripting in the Python shell</li>
<li>Extensibility using Python modules</li>
<li>Custom 3D file format, Egg, with exporters for 3D Studio Max and Maya</li>
<li>Soft skin animation and a sophisticated actor interface for character animation</li>
<li>DIRECT Tools for GUI-based scene editing</li>
<li>Particle Effects API and GUI-based particle panel</li>
<li>Lighting, fog, and animated textures</li>
<li>Sound using the FMOD library </li>
<li>Multithreading, event handling, message passing, and finite state machines</li>
<li>Functions for interpolation, sequencing, and parallelization</li>
<li>Modules for magnetic tracking for virtual reality</li>
<li>Input device interfaces</li>
<li>Extensive scenegraph manipulation modules</li>

</ul>
<h2>Walk through example</h2>
<p>  "/usr/share/panda3d/samples/Basic-Tutorials--Lesson-1-Solar-System/intro.html"</p>
<h2>Reference links:</h2>
<p>  The Panda3D homepage (http://www.panda3d.org)</p>
<p>  http://www.python.org/pycon/dc2004/papers/29/</p>
<p>  http://www.cs.princeton.edu/courses/archive/fall02/cs526/papers/panda.pdf</p>
<h2>Alternatives:</h2>
<p>  http://www.ogre3d.org/</p>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2007-08-13T22:45:42Z</dc:date>
    <dc:type>Page</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/mp3-talk-feb07">
    <title>MP3 Talk (Feb07)</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/mp3-talk-feb07</link>
    <description></description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>MP3 Under Linux</h2>
<p>  What I've learned about MP3 from setting up my recently acquired Sansa E260.</p>
<h2>MP3 vs OggVorbis</h2>
<p>        MP3 is everywhere, OGG is Open Source, A little about why I chose MP3.</p>
<h3>        Ogg Vorbis</h3>

<ul>
<li>Open source solution.</li>
<li>better compression and sound using variable bitrate.</li>
<li>Ogg is supported out of the box by Fedora Core.</li>

</ul>
<h3>        MP3 </h3>

<ul>
<li>The defacto standard for digital audio</li>
<li>Most software and many hardware devices support MP3 files.</li>
<li>Need to install non-Fedora support libraries.</li>

</ul>
<h2>Reason for my MP3 choice.</h2>

<ol>
<li> On my PDA I had been using OGG for all the CopyLeft reasons.</li>
<li> When we put a CD player in my wife's car we bought one that supported MP3 files burned on CDR media.</li>
<li> Ogg format personal players are a little harder to find.  I liked the Sansa for a couple of other reasons 
and it used MP3.</li>
<li> I then found an MP3 player that can be wired into my cars such that it uses the steering wheel controls!</li>
<li> The PDA can also play MP3 files.</li>
<li> It is easiest to standardize on ONE format.</li>

</ol>
<h2>Ripping a CD collection using KAudioCreator.</h2>
<p>  An efficient way to convert your 1990's CD collection into the new Millennium.</p>
<p>  A little configuration and time swapping Cd's into your machine quickly turns into an MP3 collection.</p>
<p>  Gnome users should look at "Grip".</p>
<h2>rsync</h2>
<p>  If you haven't used "rysnc" you don't know what you're missing!</p>
<h3>  A great Linux tool that works well on USB Mass Storage devices as well as networked systems.  </h3>

<ul>
<li>Consider using this with external disks or between all your Linux boxes.</li>

</ul>
<h3>  I started here but moved on to Amarok because</h3>

<ul>
<li>I was spending too much time renaming files!  </li>
<li>MP3 files do not have any limits on song names but VFAT devices do.</li>
<li>I found out afterward that I might have been able to solve this.</li>

</ul>
<p>  I was convinced the easiest way to "trim down" my collection was to touch the files I didn't want on the target device.  Then came Amarok.</p>
<h2>VFAT and special characters</h2>
<p>  What can not be in the paths 
  or names of your MP3 files.</p>

<ul>
<li>colon</li>
<li>slash</li>
<li>backslash</li>
<li>accent characters</li>
<li>apostrophe</li>

</ul>
<h2>Amarok</h2>
<p>  Listening under Linux, making playlists, and managing a music collection, as well as updating files on a media device (aka MP3 Player).</p>
<h2>ID3 tags</h2>
<p>  ID3 Tags are data fields stored in the mp3 file.</p>
<p>  Different versions of ID3 tags exist, so you don't know exactly what the file will have until you look.</p>
<p>  The most basic ones have fields for Artist, Album, Song Title and year.  Newer versions contain more useful data fields.</p>
<p>  These are often used by players to display now playing info.</p>
<p>  If you want to listen to an album in order it's nice to have "track" info.</p>
<p>  Genre is also nice if you're in a mood for a type of music.</p>
<p>  Tools like "eyeD3" can be used to update ID3 info in MP3 files.</p>
<h2>udev</h2>
<p>  How to make your USB device have the same dev entry ALL the time.</p>
<p>  "/etc/udev/rules.d/10-rea.rules":</p>

<pre>
    BUS=="scsi",SYSFS{model}=="Sansa e2*",KERNEL=="sd?1",NAME="%k",SYMLINK="sansa"
    # udevinfo -a -p /sys/block/sdb
    BUS=="scsi",SYSFS{model}=="2500JB External*",SYSFS{vendor}=="WD",KERNEL=="sd?1",
    NAME="%k",SYMLINK="bookA"
    BUS=="scsi",SYSFS{model}=="2500JB External*",SYSFS{vendor}=="WD",KERNEL=="sd?2",
    NAME="%k",SYMLINK="bookB"
    BUS=="scsi",SYSFS{model}=="2500JB External*",SYSFS{vendor}=="WD",KERNEL=="sd?3",
    NAME="%k",SYMLINK="bookC"
</pre>
<h2>autofs</h2>
<p>  "/etc/auto.master":</p>

<pre>
    ...

    /misc   /etc/auto.misc

    ...
</pre>
<p>  "/etc/auto.misc":</p>

<pre>
    ...

    sansa           -fstype=vfat,sync,umask=000,dmask=000   :/dev/sansa
    a               -fstype=ext3            :/dev/bookA
    b               -fstype=ext3            :/dev/bookB
    c               -fstype=ext3            :/dev/bookC

    ...
</pre>
<h2>Playlist formats PLP vs M3U</h2>
<p>  M3U seems more popular, but my Sansa uses PLP/PLA format.</p>
<p>  The complete and utter magic of "recode":</p>

<pre>
    cat ~/trash/PLAYLISTS/bike.m3u | recode UTF-16LE..UTF-8 | cat -v
</pre>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2007-02-13T00:00:00Z</dc:date>
    <dc:type>Page</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/google-earth-talk">
    <title>Google Earth Talk</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/google-earth-talk</link>
    <description>Google Earth is a free GIS package with a lot of power.  It can display maps, mark locations, import GPS tracks and points of interest.  Did I mention cool flythroughs?</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Google Earth (GE) is available for free download from &quot;<a class="reference external" href="http://earth.google.com/">http://earth.google.com/</a>&quot;.</p>
<div class="section" id="what-are-graphical-information-systems-gis">
<h3>What are Graphical Information Systems (GIS)</h3>
<blockquote>
<a class="reference external" href="http://umassk12.net/earth/presentations/Qian.ppt">http://umassk12.net/earth/presentations/Qian.ppt</a></blockquote>
<div class="section" id="a-few-web-links-for-goolge-earth">
<h4>A few web links for Goolge Earth:</h4>
<p><a class="reference external" href="http://googlearthusersguide.blogspot.com/">http://googlearthusersguide.blogspot.com/</a></p>
<p><a class="reference external" href="http://www.eastchester.k12.ny.us/schools/hs/teachers/fermann/GE.htm">http://www.eastchester.k12.ny.us/schools/hs/teachers/fermann/GE.htm</a></p>
<blockquote>
They have a &quot;GE Manual for Earth Science Teachers&quot; which is good.</blockquote>
<p><a class="reference external" href="http://www.googleearthhacks.com/">http://www.googleearthhacks.com/</a></p>
<blockquote>
<p>Some great things people have figured out how to do.</p>
<p>Make sure you check out &quot;The ten best things you can do with Google Earth&quot;</p>
<p>Find the sub in Portsmouth, New Hampshire.</p>
</blockquote>
<p><a class="reference external" href="http://bbs.keyhole.com">http://bbs.keyhole.com</a></p>
<blockquote>
The &quot;Google Earth Cummunity&quot;</blockquote>
<p><a class="reference external" href="http://www.mi-perm.ru/gis/earth/">http://www.mi-perm.ru/gis/earth/</a></p>
<blockquote>
Step 1. My first placemark.
Step 2. My first image overlay.
Step 3. My first network link.</blockquote>
<p><a class="reference external" href="http://slideshare.net/qdsouza/google-earth-a-classroom-tool">http://slideshare.net/qdsouza/google-earth-a-classroom-tool</a></p>
<blockquote>
Check out 50 ideas in 50 minutes.</blockquote>
<dl class="docutils">
<dt><a class="reference external" href="http://www.shockwave.com/contentPlay/photojam4.jsp?doc=13634744/1160428165779_34">http://www.shockwave.com/contentPlay/photojam4.jsp?doc=13634744/1160428165779_34</a></dt>
<dd>Some ideas on why Google Earth (GE) was created.</dd>
</dl>
<p><a class="reference external" href="http://gearthblog.com/">http://gearthblog.com/</a></p>
<blockquote>
A BLOG site for Google Earth.
Also check out the &quot;GE Basics&quot; section.</blockquote>
<p><a class="reference external" href="http://kokae.libsyn.com/">http://kokae.libsyn.com/</a></p>
<blockquote>
POD cast instructions on howto use GE.</blockquote>
</div>
<div class="section" id="how-is-google-earth-being-used">
<h4>How is Google Earth being used</h4>
<p>A geography teacher in Scotland (<a class="reference external" href="http://OllieBray.com">http://OllieBray.com</a>) gave a conference presentation &quot;Movie 50 ideas in 50 minutes&quot; which is available online from: &quot;<a class="reference external" href="http://video.google.co.uk/videoplay?docid=-2717838093983614120&hl=en-GB">http://video.google.co.uk/videoplay?docid=-2717838093983614120&amp;hl=en-GB</a>&quot;.  He's using it to get students involved in geography.  His talk is on 50 ideas to change how teachers teach geography in gradeschools.</p>
<p>A free GIS system.</p>
<p>A really cool toy.</p>
<p>Links in really nicely with <a class="reference external" href="http://maps.google.com">http://maps.google.com</a>, just add a '/maps?q=' followed by a URL to your .kml file.  For example: &quot;<a class="reference external" href="http://maps.google.com/maps?q=http://www.sr.unh.edu/~rea/adv060817/gaps.gdb.kml">http://maps.google.com/maps?q=http://www.sr.unh.edu/~rea/adv060817/gaps.gdb.kml</a>&quot;.  Note this example was done with gpsbabel (<a class="reference external" href="http://www.gpsbabel.org/">http://www.gpsbabel.org/</a>).</p>
</div>
<div class="section" id="goes-great-with">
<h4>Goes great with</h4>
<p>The gps reformating swiss army knife &quot;gpsbabel&quot; (<a class="reference external" href="http://www.gpsbabel.org/">http://www.gpsbabel.org/</a>).</p>
<p>Your own GPS track logs.</p>
</div>
</div>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2006-11-14T00:00:00Z</dc:date>
    <dc:type>Page</dc:type>
  </item>


  <item rdf:about="http://slug.gnhlug.org/Members/rea/SLUG/talks/intro-to-cascading-style-sheets">
    <title>Intro to Cascading Style Sheets</title>
    <link>http://slug.gnhlug.org/Members/rea/SLUG/talks/intro-to-cascading-style-sheets</link>
    <description>Talk notes from March 2006 SLUG talk.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Cascading Style Sheets</p>
<div class="section" id="introduction">
<h3>Introduction</h3>
<p>w3schools.com &gt; Css &gt; Css intro &lt;<a class="reference external" href="http://www.w3schools.com/css/css_intro.asp">http://www.w3schools.com/css/css_intro.asp</a>&gt;</p>
</div>
<div class="section" id="references">
<h3>References</h3>
<p>meyerweb &gt; Eric &gt; Css &gt; References</p>
<ul class="simple">
<li>Css2ref <a class="reference external" href="http://www.meyerweb.com/eric/css/references/css2ref.html">http://www.meyerweb.com/eric/css/references/css2ref.html</a></li>
<li>Css1ref <a class="reference external" href="http://www.meyerweb.com/eric/css/references/css1ref.html">http://www.meyerweb.com/eric/css/references/css1ref.html</a></li>
</ul>
<p>westciv.com &gt; Style master &gt; Academy &gt; Css tutorial <a class="reference external" href="http://www.westciv.com/style_master/academy/css_tutorial/">http://www.westciv.com/style_master/academy/css_tutorial/</a></p>
<p>w3.org &gt; TR &gt; REC-CSS2 <a class="reference external" href="http://www.w3.org/TR/REC-CSS2/">http://www.w3.org/TR/REC-CSS2/</a></p>
<p>devguru &gt; Technologies &gt; Css2 &gt; Home <a class="reference external" href="http://devguru.com/technologies/css2/home.asp">http://devguru.com/technologies/css2/home.asp</a></p>
</div>
<div class="section" id="examples">
<h3>Examples</h3>
<p>csszengarden.com <a class="reference external" href="http://www.csszengarden.com/">http://www.csszengarden.com/</a></p>
<p>meyerweb &gt; Eric &gt; Css &gt; Edge <a class="reference external" href="http://www.meyerweb.com/eric/css/edge/">http://www.meyerweb.com/eric/css/edge/</a></p>
<p>tool-man.org &gt; Examples &gt; Edit-in-place <a class="reference external" href="http://tool-man.org/examples/edit-in-place.html">http://tool-man.org/examples/edit-in-place.html</a></p>
<p>SLUG &gt; Howto &gt; Howto-make-a-slideshow <a class="reference external" href="http://slug.gnhlug.org/slug/Members/rea/SLUG/howto/howto-make-a-slideshow/">http://slug.gnhlug.org/slug/Members/rea/SLUG/howto/howto-make-a-slideshow/</a></p>
</div>
<div class="section" id="tools">
<h3>Tools</h3>
<p>chrispederick &gt; Work &gt; Webdeveloper <a class="reference external" href="http://chrispederick.com/work/webdeveloper/">http://chrispederick.com/work/webdeveloper/</a></p>
<p>slayeroffice &gt; Tools &gt; Modi &gt; V2.0 &gt; Modi help <a class="reference external" href="http://slayeroffice.com/tools/modi/v2.0/modi_help.html">http://slayeroffice.com/tools/modi/v2.0/modi_help.html</a></p>
</div>
<div class="section" id="my-stuff">
<h3>My stuff</h3>
<p>Web mancala <a class="reference external" href="http://q.sr.unh.edu/cgi-bin/web_mancala.pl">http://q.sr.unh.edu/cgi-bin/web_mancala.pl</a></p>
<p>CEMS filter application shown</p>
</div>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Robert Anderson</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>SLUG</dc:subject>
    
    
      <dc:subject>Talk</dc:subject>
    
    <dc:date>2006-03-31T11:43:14Z</dc:date>
    <dc:type>Page</dc:type>
  </item>





</rdf:RDF>

