Monthly Archives: June 2010

Copying Files to a Remote Desktop Machine

I recently learnt how to copy files to a machine to which I am remotely connected via Remote Desktop. Follow these simple steps:

  1. Once you’ve opened Remote Desktop, click on the Opions button;
  2. Go to the Local Resources tab;
  3. Go to the “Local devices and resources” GroupBox at the foot of that tab, click “more”;
  4. Select the drive upon which the file you want to copy is residing;
  5. log in to the remote machine and:
    • open My Computer;
    • there, you will find that drive listed as a “connected drive”. Double click on it and copy across the file using drag and drop.

rdc

xQuery and iTunes

It’s been a while since I’ve posted an xQuery. So I dusted off the old saxon processor and thought I’d have a bit of fun with the iTunes library.
I got me some well formed xml by selecting the Podcasts node in iTunes’ left column and exported it to Podcasts.xml (File/Library/Export Playlist). That gives you this xml file. So what now? Run some xQuery against it, is what!

You have to examine the xml a bit to get a feel for how it is laid out. The xQuery which I ran searches for all podcasts by the artist Jupiter Broadcasting and sets out several pieces of meta-data for those podcast episodes (Name, Kind, Bit Rate, Sample Rate). The xQuery is:

declare namespace dave = "http://www.localhost:8090/xquery";

declare function dave:getJupiterBroadcastingShows($allShows as element()+) as element()+
{	
	let $JBShows := $allShows[contains(child::string[preceding-sibling::key[1]/child::text() = 'Artist'], 'Jupiter Broadcasting')]
	return $JBShows
};


let $list := doc("Podcasts.xml")/plist/dict/key[.="Tracks"]/following-sibling::dict[1]
let $key := $list/child::key
let $pods := $key/following-sibling::dict[1]
let $podCastJupiter := dave:getJupiterBroadcastingShows($pods)
return
	<podcasts>
		{
			for $keyVal in $podCastJupiter
			return
				<podcast>
					<name>
						{$keyVal/child::key[child::text() = 'Name']/following-sibling::string[1]/child::text()}
					</name>
					<filetype>
						{$keyVal/child::key[child::text() = 'Kind']/following-sibling::string[1]/child::text()}
					</filetype>
					<bitrate>
						{$keyVal/child::key[child::text() = 'Bit Rate']/following-sibling::integer[1]/child::text()}
					</bitrate>
					<samplerate>
						{$keyVal/child::key[child::text() = 'Sample Rate']/following-sibling::integer[1]/child::text()}
					</samplerate>
				</podcast>
		}
		
	</podcasts>

and the result of this query was:

<?xml version="1.0" encoding="UTF-8"?>
<podcasts>
   <podcast>
      <name>The Computer Action Show! Season 2 Episode 1</name>
      <filetype>MPEG audio file</filetype>
      <bitrate>96</bitrate>
      <samplerate>44100</samplerate>
   </podcast>
   <podcast>
      <name>The Computer Action Show! Season 2 Episode 2</name>
      <filetype>MPEG audio file</filetype>
      <bitrate>96</bitrate>
      <samplerate>44100</samplerate>
   </podcast>
   <podcast>
      <name>The Computer Action Show! Season 2 Episode 3</name>
      <filetype>MPEG audio file</filetype>
      <bitrate>80</bitrate>
      <samplerate>44100</samplerate>
   </podcast>
   <podcast>
      <name>The Computer Action Show! Season 1 Episode 4</name>
      <filetype>MPEG audio file</filetype>
      <bitrate>96</bitrate>
      <samplerate>44100</samplerate>
   </podcast>
   <podcast>
      <name>The Computer Action Show! Season 1 Episode 5</name>
      <filetype>MPEG audio file</filetype>
      <bitrate>96</bitrate>
      <samplerate>44100</samplerate>
   </podcast>
   <podcast>
      <name>The Computer Action Show! Season 1 Episode 6</name>
      <filetype>MPEG audio file</filetype>
      <bitrate>96</bitrate>
      <samplerate>44100</samplerate>
   </podcast>
   <podcast>
      <name>The Computer Action Show! Season 1 Episode 7</name>
      <filetype>MPEG audio file</filetype>
      <bitrate>96</bitrate>
      <samplerate>44100</samplerate>
   </podcast>
   <podcast>
      <name>The Computer Action Show! Season 1 Episode 9</name>
      <filetype>MPEG audio file</filetype>
      <bitrate>96</bitrate>
      <samplerate>44100</samplerate>
   </podcast>
   <podcast>
      <name>The Computer Action Show! Season 1 Episode 10</name>
      <filetype>MPEG audio file</filetype>
      <bitrate>96</bitrate>
      <samplerate>44100</samplerate>
   </podcast>
   <podcast>
      <name>The Computer Action Show! Season 2 Episode 4</name>
      <filetype>MPEG audio file</filetype>
      <bitrate>96</bitrate>
      <samplerate>48000</samplerate>
   </podcast>
</podcasts>

I know I know. It’s awesome.