<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="project.xsl"?>
<portfolio>
    <project>
    <title>Google Desktop +</title>
    <subject>Authotkey</subject>
	<anchor>googledesktop</anchor>
    <date>082008</date>

    <summary>
      <description>
        <title>Google Desktop</title>
        <text>I run Vista at home and XP at the office.  At work I missed the ability to search and launch applications so I installed Google Desktop (Also XP file find was failing to deliever).  But there were two lacking components with Google Desktop that I wanted to augment to improve usability.</text>
      </description>

    <description>
        <title>Definable Hotkey</title>
        <text>While Ctrl+Ctrl was an acceptable way of launching Google Desktop I thought that there were times where I would like to use an alternate hot key combination. I was not able to quickly replicate the double key press I wrote it so you can define a different shortcut key.</text>
      </description>
      
      <description>
        <title>Changing States</title>
        <text>Google Desktop has three states: Launch Desktop; Search Desktop; and Search Web.  Most of the time I wanted to launch an application by default, the rest of the time I wanted to search the web, and rarely seek things on the hard-drive.  So I set up the ability to specify a hot key for each of the states, saving me a few key strokes.</text>
      </description>
      <description>
        <title>Requirements</title>
        <text>Google Desktop must be installed.  Changing states requires access to registry keys for the Google application it likely requires power user/administrator access.</text>
	  </description>
    </summary>

    <resources>
    
      <link>
        <title>Discuss!</title>
        <image>http://www.recursivegames.com/burtlo/code/images/information.gif</image>
        <path>http://burtlo.livejournal.com/130164.html</path>
      </link>
    
      <link>
        <title>Google Desktop +</title>
        <image>http://burtlo.recursivegames.com/code/images/ZIP.gif</image>
        <path>googledesktop/GoogleDesktopSwitch.zip</path>
      </link>
      
    </resources>
  </project>
	
	
	<project>
    <title>Ring Ring (iPhone)</title>
	<anchor>ringring</anchor>
    <subject>C#</subject>
    <date>080408</date>

    <thumbnails>

      <image>
        <title>User Interface</title>
        <width>150</width>
        <height>150</height>
        <thumbnail>ringring/ringring.jpg</thumbnail>
        <fullimage>ringring/ringring.jpg</fullimage>
      </image>
    </thumbnails>

    <summary>
      <description>
        <title>Create iPhone ringtones!</title>
        <text>RingRing allows you to create ring tones for your iPhone quickly and easily for free.  RingRing allows you to leverage your existing library of MP3s to create custom length ringtones for your friends and family.</text>
      </description>

    <description>
        <title>How to Use!</title>
        <text>Download the application below.  Copy the RingRing folder locally to your system.  Run the RingRing application.  Drag-and-drop a file onto the the target or double-click the target and browse to a file.  Select your start and stop time and press create.  The directory with your new ringtone will open.  Simply copy that file to where you would like to store your ring tones and then drag that file onto your iTunes library.</text>
      </description>

      
      <description>
        <title>About</title>
        <text>As a Windows user I was dissapointed that iTunes charged money to create ring tones for music that I had already paid to download.  I was even more disgruntled with the inability to create ring tones from songs already existing in my library.  That was when I stumbled upon a number of helpful resources on the Internet to help with the conversion process.  However, I was still not pleased with the manual steps required to go through just to make a single ring tone (I'm not an easy person to please apparently).  So I created RingRing.</text>
      </description>
      <description>
        <title>Requirements</title>
        <text>RingRing is a free application for the Windows written in C# and requires .NET 2.0.  Powered by a number of Open Source project, it is really an attempt of putting a fancy front-end on a number of command-line utilities: madplay; faac; and ID3.  I have included the VS2005 project below for those interested in extending the product.</text>

      </description>
      <description>
        <title>Future</title>
        <text>A future version will include m4a support, preview fuctionality, and specify music segments to the hundredths of a second.  Along with better file-handling and managing.</text>
      </description>
    </summary>

    <resources>
    
      <link>
        <title>Discuss!</title>
        <image>http://www.recursivegames.com/burtlo/code/images/information.gif</image>
        <path>http://burtlo.livejournal.com/129587.html</path>
      </link>
    
      <link>
        <title>RingRing Executable Zip File</title>
        <image>http://burtlo.recursivegames.com/code/images/ZIP.gif</image>
        <path>ringring/RingRing.zip</path>
      </link>
      
      <link>
        <title>RingRing Source Zip File</title>
        <image>http://burtlo.recursivegames.com/code/images/sourceDirectory.gif</image>
        <path>ringring/RingRing_src.zip</path>
      </link>
      
    </resources>
  </project>
  
  <project>
    <title>Instant Artist (for iTunes)</title>
    <anchor>instantartist</anchor>
    <subject>iTunes</subject>
    <date>080808</date>
  
    <thumbnails>
    </thumbnails>
    
    <summary>
      <description>
        <title>Instant Artist </title>        
        <text>From the song playing, immediately create a playlist of either the album or the artist.</text>
      </description>
      <description>
        <title></title>
        <text>I usually roll my own playlists but other times I let random dictate for me. The problem is that when a particular song comes on I want to continue listening to more of that album or the artist. I couldn't do that unless I stopped everything I was doing and created the playlist.</text>
      </description>
      <description>
        <title>Instant Rating</title>        
        <text>Rate the song playing without having to deal with the iTunes interface.</text>
      </description>
      <description>
        <title></title>
        <text>I also wanted to be more diligent in matters of rating music that I liked but was constantly tired with returning to iTunes interrupting my workflow or other activity.</text>
      </description>
      
      <description>
        <title>About</title>
        <text>So I created a little application called: InstantArtist. It employs a rudimentary interface, which can easily be changed. I thought I would share it in the event that someone else wished for similar features. Through a system tray icon or keyboard shortcut you can immediately create a playlist for the current playing artist or artist's album. You can also increase/decrease the rating of the song by a star (I'm thinking now I probably should have included a shortcut key for each star).</text>
      </description>
    </summary>
    
    <resources>
    
      <link>
        <title>Discuss!</title>
        <image>http://www.recursivegames.com/burtlo/code/images/information.gif</image>
        <path>http://burtlo.livejournal.com/129587.html</path>
      </link>
      
      <link>
        <title>Instant Artist Zip File</title>
        <image>http://burtlo.recursivegames.com/code/images/ZIP.gif</image>
        <path>InstantArtist/InstantArtist.zip</path>
      </link>
      
    </resources>
    
  </project>
	
	
	<project>
    <title>UDP/TCP Chat Client</title>
    <anchor>chatclient</anchor>
    <subject>Java</subject>
    <date>022005</date>

    <thumbnails>
      <image>
        <title>Client Setup</title>
        <width>150</width>
        <height>150</height>
        <thumbnail>info341/Lab4/SimpleClient150.jpg</thumbnail>
        <fullimage>info341/Lab4/SimpleClient.jpg</fullimage>
      </image>
      <image>
        <title>Server Setup</title>
        <width>150</width>
        <height>150</height>
        <thumbnail>info341/Lab4/SimpleServer150.jpg</thumbnail>
        <fullimage>info341/Lab4/SimpleServer.jpg</fullimage>
      </image>
      <image>
        <title>Chat Example</title>
        <width>150</width>
        <height>150</height>
        <thumbnail>info341/Lab4/SimpleClientChat150.jpg</thumbnail>
        <fullimage>info341/Lab4/SimpleClientChat.jpg</fullimage>
      </image>
    </thumbnails>

    <summary>
      <description>
        <title>Server</title>
        <text>Simple Server contains a setup wizard that is reached through the File -> Start menu. This allows you to select: the network device you wish to bind; the port that will be polled for clients; and the connection protocol;</text>
      </description>
      <description>
        <title>Client</title>
        <text>Simple Client contains a setup wizard that is reached through the File -> Connect menu. This allows you to select: the host; the port in which to connect; and the connection protocol;</text>
      </description>
      <description>
        <title>Communication</title>
        <text>Once both the server and client are properly initialized communication between the two parties may take place.  You type your message in the text field provided at the bottom of the application.  To send the message you may hit the ENTER key or click on the SEND button.</text>
      </description>
      <description>
        <title></title>
        <text>Bold messages are system messages which inform you about starting, stopping, connection, or disconnection of the server or client.</text>
      </description>
      <description>
        <title></title>
        <text>Italics messages are error messages which inform you if an error occurred in binding to the network devices, if the socket connection failed, etc.</text>
      </description>
      <description>
        <title></title>
        <text>Messages following a blue SENT placed in front are messages sent from you.</text>
      </description>
      <description>
        <title></title>
        <text>Messages following a red RECEIVED placed in front are messages received from the other application.</text>
      </description>
    </summary>

    <resources>
      <link>
        <title>Source Code</title>
        <image>images/sourceDirectory.gif</image>
        <path>info341/Lab4/</path>
      </link>
      <link>
        <title>Javadoc</title>
        <image>images/information.gif</image>
        <path>info341/Lab4/javadoc/</path>
      </link>
    </resources>
  </project>


  <project>
    <title>UDP/TCP Chat Client</title>
    <anchor>chatclient</anchor>
    <subject>Java</subject>
    <date>022005</date>

    <thumbnails>
      <image>
        <title>Client Setup</title>
        <width>150</width>
        <height>150</height>
        <thumbnail>info341/Lab4/SimpleClient150.jpg</thumbnail>
        <fullimage>info341/Lab4/SimpleClient.jpg</fullimage>
      </image>
      <image>
        <title>Server Setup</title>
        <width>150</width>
        <height>150</height>
        <thumbnail>info341/Lab4/SimpleServer150.jpg</thumbnail>
        <fullimage>info341/Lab4/SimpleServer.jpg</fullimage>
      </image>
      <image>
        <title>Chat Example</title>
        <width>150</width>
        <height>150</height>
        <thumbnail>info341/Lab4/SimpleClientChat150.jpg</thumbnail>
        <fullimage>info341/Lab4/SimpleClientChat.jpg</fullimage>
      </image>
    </thumbnails>

    <summary>
      <description>
        <title>Server</title>
        <text>Simple Server contains a setup wizard that is reached through the File -> Start menu. This allows you to select: the network device you wish to bind; the port that will be polled for clients; and the connection protocol;</text>
      </description>
      <description>
        <title>Client</title>
        <text>Simple Client contains a setup wizard that is reached through the File -> Connect menu. This allows you to select: the host; the port in which to connect; and the connection protocol;</text>
      </description>
      <description>
        <title>Communication</title>
        <text>Once both the server and client are properly initialized communication between the two parties may take place.  You type your message in the text field provided at the bottom of the application.  To send the message you may hit the ENTER key or click on the SEND button.</text>
      </description>
      <description>
        <title></title>
        <text>Bold messages are system messages which inform you about starting, stopping, connection, or disconnection of the server or client.</text>
      </description>
      <description>
        <title></title>
        <text>Italics messages are error messages which inform you if an error occurred in binding to the network devices, if the socket connection failed, etc.</text>
      </description>
      <description>
        <title></title>
        <text>Messages following a blue SENT placed in front are messages sent from you.</text>
      </description>
      <description>
        <title></title>
        <text>Messages following a red RECEIVED placed in front are messages received from the other application.</text>
      </description>
    </summary>

    <resources>
      <link>
        <title>Source Code</title>
        <image>images/sourceDirectory.gif</image>
        <path>info341/Lab4/</path>
      </link>
      <link>
        <title>Javadoc</title>
        <image>images/information.gif</image>
        <path>info341/Lab4/javadoc/</path>
      </link>
    </resources>
  </project>



  <project>
    <title>ShortPeer File Server/Client Demo</title>
    <anchor>FileServerClient</anchor>
    <subject>Java</subject>
    <date>031505</date>

    <thumbnails>
      <image>
        <title>Server User List</title>
        <width>150</width>
        <height>150</height>
        <thumbnail>info341/ExtendedLab/ShortPeerServer_01_thumb.jpg</thumbnail>
        <fullimage>info341/ExtendedLab/ShortPeerServer_01.jpg</fullimage>
      </image>
      <image>
        <title>Client File</title>
        <width>150</width>
        <height>150</height>
        <thumbnail>info341/ExtendedLab/ShortPeerClient_01_thumb.jpg</thumbnail>
        <fullimage>info341/ExtendedLab/ShortPeerClient_01.jpg</fullimage>
      </image>
    </thumbnails>

    <summary>
      <description>
        <title>Server</title>
        <text>Short Peer Server setups a UDP Server on a given network device and port.  Waits for incoming Short Peer Clients.  Manages a list of the clients and ensures that the users know about each other.</text>
      </description>
      <description>
        <title>Client</title>
        <text>Short Peer Clients are allowed to upload file names to the server.</text>
      </description>
  </summary>

    <resources>
      <link>
        <title>Source Code</title>
        <image>images/sourceDirectory.gif</image>
        <path>info341/ExtendedLab</path>
      </link>
    </resources>
  </project>
 
</portfolio>