Mollensoft
Labs Specializing
In Educational & Scientific Freeware as well as
Intra-net Specific Servers/Clients, Custom Sensors and processing
tools for Scientists (or Anyone's) Use in the
Lab.Programming Languages: Perl & Visual Basic
& C#
What is it?
SqlFar is a new type of archiving tool allowing users to
add/remove files to and from a portable SQLite database; while
heavily encoding data access and other payload parameters, We call it "The Smarter Zipper Upper"
Why use it?
Well, its not necessarily the archive tool for everyone... SqlFar archives are encoded
with
self-describing access and historical data (metadata)
concerning the archive's contents, history accesses and contributes to
archive integrity when passed from person to person. The metadata
encoding of Archive files facilitates the discovery of
pertinent information from the user perspective while ensuring that the
Archive contents will survive and continue to be accessible, unless
otherwise specified, into the future. It's compression is not as fast
and won't compress files as small as other utilities but if you need
the metadata encoding features then it may be useful for you.
How do you pronounce it?
It's pronounced "CeeQualFaar"
How is the information
stored? each file added is a separate row in the database while access activity is logged in a separate table
What size files can be
stored?
We have successfully stored a 558 MB ISO (along with a few other
files)
in an SqlFar... ftp'd it to another location, then extracted
and installed the ISO into a virtual machine with no
errors but we don't typically use it for very large files... mostly
many small ones. We have encountered problems storing single files
above 600 MB
and we consider this our current limit, but hope to expand it significantly in the future.
Why again? Its
a really long story, bottom line is we needed a way to maintain
semi-controlled access to
several (magnetic) sensor log files so Solar researcher's could
review
them (various versions of them of course) so the only way to
ensure
data integrity of many (sometimes very similar if not duplicate files)
was to transfer around many MySql Database files... which is a bit
awkward and required a lot of user know-how. We also needed a
better way of logging sensor data directly to portable files that are
self describing, yet offer the immediate, easy to use, power of SQL queries... So we developed
a tool using Perl which has served
us well for a while but now a few of our younger solar researchers are not
comfortable with
the command line and thought we should make things easier for
them.
This resulted in our first .Net application to pass around
the magnetic sensor (and any other) files. It' has actually
become very handy for many tasks and hopefully will benefit the public
as well despite the fact we have removed some of the
security/authentication mechanisms from this version.
Why did you remove some of the Security Stuff? Well,
the implementation works well for us, but the current version's
security could be subverted by an appropriately motivated cracker and we
want to re-vamp the security to ensure it's less prone to subversion or
unauthorized access for version 1.1 using 2 or 3 key authentication and extraction authority.
What's the Future? We
have a lot of plans for it's internal use but would like to gauge the
interest from others to determine if what level of priority to levy
against its development potential... I see some possibilities in SOHO
organizations where (compliance) may be difficult to achieve for small-to-zero person IT
shops to keep data organized and archived smartly on a shoestring
budget.
Anything Else? Yes, please check out the Movie of the SqlFar in action... it might help you decide if SqlFar is right for you.
SqlFar User Interface Help:
Below is the primary SqlFar user interface for win32 platforms, it is very intuitive and
includes a minimum of functions all of which are available by using
your mouse to create, open, extract files, add files, remove files from
the SqlFar Archive
Below is an overview of the primary toolbar buttons and their
associated functions
Adding Files
You can add files three different ways, by clicking the +
button on the user interface then specify which files you wish to add.
Secondly, you can drag and drop files on to the main User Interface Tab
called "SqlFar Contents" Finally you can use the menu to select files
you wish to add into the archive "SqlFar -> Add Files To This
SqlFar". When the add files dialog appears, you can select if
the files should be compressed by Checking the "Compress Files"
Checkbox.
Creating New SqlFar
Archives
To create a new SqlFar Archive, you can click "Start
-> Programs -> SqlFar" to launch a new instance
of the SqlFar user interface. Once the interface is loaded you can
create a new Archive two different ways:
1. Click the "Sqlfar -> New SqlFar" Dialog from the menu bar,
specify a destination directory and proceed to add files.
2. Click the Icon from the tool bar... Specify a
destination directory and proceed to add files.
Deleting Files
Deleting Files is very intuitive, you can right-mouse click and select
the "Delete Selected File(s)" menu to delete selected files from the
SqlFar. Alternatively you can also delete files using the X button on
the toolbar. Finally, you can query for specific files using the "Find
Files" query tab and then delete the specified files using the
right-mouse click context menu.
SqlFar Description Tab
The "Sqlfar Details" Tab [Below] displays important details (in a quick
summary format) concerning the archive's contents and payload. This
information is straight forward and easy to understand and highlights
specific file variables pertinent to the currently loaded archive such
as the archive's total size, numbers and types of files contained etc.
Extracting Files
It is very easy to extract Files from the SqlFar Archive, you can click
the "extract" icon or right-mouse
click and select "Extract Selected File(s)"... a destination directory
dialog form will appear. You select the directory where you wish the
files to be extracted to, then click "Ok" and the files will be
extracted to that location. Note you can extract files from the "SqlFar
Contents" Tab or the "Find Files" Tab of the SqlFar User Interface.
This is very powerful in that you can search for specific files within
an Archive to extract using standard SQL queries. (Note: your user account must
have write permissions for the destination directory in order to
extract the files to that location)
History Queries
Sqlfar Archives are metadata encoded to reveal and define the
details of it's existence from beginning to present. This provides
users with a significant amount of knowledge and power regarding the
archiving of various files and information. Some users have commented
that it enables their organization to maintain compliance of various,
sensitive datasources while maintaining a reasonable facsimile of
security and organization.
Users can query the history of Sqlfar Archives to determine what the
details of use, access associated with the Archive. At present,
most of the security features have been disabled on the publicly
available version until certain security measures can be implemented
(sorry). Rest assured, the future of this archive security will
be restored and available for public use soon.
To query the history of a specific Sqlfar Archive, open the archive and
then click the "View Archive History" tab and you can perform various
history queries. Using this tab, you can quickly and efficiently review
the metadata describing this archive's activity, it’s accesses
and it’s history.
The Archive History is detailed and enables you to review the
Archive’s metadata by querying the following fields using
standard sql Syntax:
Available history fields to query:
dtg =
Date Time of the local system when the action took place action = This is the field containing the actual activity which occurred (best to query this field for specific actions) os = This field describes the Operating System of the user when the specified action took place platform = This field describes the platform of the user when the specified action took place operatingsys = This field describes the operating system version number of the user when the specified action took place pmem =
This field describes the total Physical Memory on the system using the SqlFar computername = This field describes the hostname of the computer system currently manipulating the SqlFar screenxy = This field describes
the computer’s screen dimensions (in pixels) of the computer
system currently manipulating the SqlFar username = This field describes the username of the individual currently manipulating the SqlFar
You can query these fields using standard SQL (Search Query Language)
database syntax with one exception. You do not need to specify the
initial portion of the SQL query as it is provided for you.
For Example, if you wanted to show all of the instances where any user has Added a File you could use the Following Query:
action like ‘Adding%’
The query above searches the currently loaded SqlFar for any "action"
entry that contains the term "Adding" with any other text following.
The Following Examples Are Provided to help you perform simple Queries:
Find All instances of the SqlFar Being Loaded, Perhaps to see all of the Usernames:
action like ‘Loaded%’
Find All instances of Files Being Deleted, Perhaps to see all of the Usernames performing the deletion:
action like ‘Loaded%’
Find All instances of Files Being Added, perhaps to see all of the Usernames performing the additions:
Action like ‘Adding%’
You can Also perform date-time based queries, for example you are trying to determine all the files added on 5 May 2007:
dtg like '5/5/2007%'
You can also perform username based queries, for example you are trying
to determine which files where added by the user "Administrator" on the
Computer System named "DRAGON-MOBILE"
computername like 'DRAGON-MOBILE' and username like 'Administrator'
you can combine these queries to find very detailed information
regarding the activity associated with a particular SqlFar using these
powerful queries!
You can Also Re-Use, Insert, Delete and Save Your Queries, Reload them as you desire by using the "History" Dialog (Below)
These Historical Query items are automatically saved to file, in your
username's "My Documents" Directory called "history.xml" and you can
optionally load or save to another location as many users have found it
useful to have various history files available for use when querying
differing types of SqlFar Archives.
Known Issues/Challenges:
This page describes the primary, known errors and limitations with Publicly available, .Net
version of the SqlFar Archiving user interface using the current
version (in order by version). These errors do NOT pertain to the
original Perl, Command Line version which can be operated on more than
one platform.
Challenges:
.Net Default Compression (Gzip) does not reliably compress very small
files, so if the crc fails during compression of these files, it will
be annotated in the history table and add the file in it's original
form.
.Net Default Compression (Gzip) does not create highly-compressed files
when compared to other compression types (this is not a big factor for
us but may become an issue in the future).
Major BugFixes:
SqlFar UI 1.0.0B - fixed drag drop target on main form listview - Fixed
7 April 2007
SqlFar UI 0.7.4 - excessive memory use when adding files to large
SqlFar - Fixed 11 March 2007
SqlFar UI 0.6.3 - user request to save query history as xml file to
user specified directory - Added feature 1 March 2007
SqlFar UI 0.6.1 - previously zipped binary file extraction on Linux
Kernel 2.6 results in bad crc - Fixed 11 FEB 2007
SqlFar UI 0.3.7 - Open New SqlFar Does not clear history table event
data from UI - Fixed 16 JAN 2007
SqlFar UI 0.3.5 - User can add more files that the .NET Open File
Dialog can support - Still
Not Really Resolved
SqlFar UI 0.1.1 - Compression does not work reliably on very small files - Fixed 22
DEC 2006
SqlFar UI 0.1.1 - Compression does not work reliably - Fixed 4
DEC 2006
If you are having a problem or have a feature you would like added,
please contact me
Opening SqlFar Archives
Opening SqlFar Archives is equally intuitive as you can double-mouse
click any *.sfr file and it should open within the Sqlfar user
interface. After loading you can add, delete or extract files from the
Archive as described above.
If the Sqlfar user interface is already loaded, you can load another Sqlfar by clicking the button on the toolbar or by selecting "SqlFar -> Open SqlFar" from the main menu.
System Requirements
This SqlFar user interface requires
Windows Vista, Windows XP, or Windows 2000 Operating
Systems
You must have the Microsoft .NET
Runtime Version 2.0 installed to run this application
It is also recommended your computer has at least 512 MB of Physical
Memory to use this application, and 1 GB if you will be processing very large files on a frequent basis
Viewing Files Contained
Within The Archive
You can view files two different ways, first you can see an Archive's
contents by viewing the main window (above) or if you are looking for
files contained within the archive you can use the "Find Files"
capability to query your SqlFar using the metadata encoding present
within the archive itself.
Quick Archive History Help:
Using this tool you can quickly and efficiently review the metadata
describing this archive's activity, it’s accesses and it’s
history.
The Archive History is detailed and enables you to review the
Archive’s metadata by querying the following fields using
standard sql Syntax:
Available Fields to Query:
dtg =
Date Time of the local system when the action took place action = This is the field containing the actual activity which occurred os = This field describes the Operating System of the user when the specified action took place platform = This field describes the platform of the user when the specified action took place operatingsys = This field describes the version number of the operating system of the user when the specified action took place pmem =
This field describes the total Physical Memory on the system using the SqlFar computername = This field describes the hostname of the computer system currently manipulating the SqlFar screenxy = This field describes
the computer’s screen dimensions (in pixels) of the computer
system currently manipulating the SqlFar username = This field describes the username of the individual currently manipulating the SqlFar
You can query these fields using standard SQL (Search Query Language)
database syntax with one exception. You do not need to specify the
initial portion of the SQL query as it is provided for you.
For Example, if you wanted to show all of the instances where any user has Added a File you could use the Following Query:
action like ‘Adding%’
The query above searches the currently loaded SqlFar for any "action"
entry that contains the term "Adding" with any other text following.
The Following Examples Are Provided to help you perform simple Queries:
Find All instances of the SqlFar Being Loaded, Perhaps to see all of the Usernames:
action like ‘Loaded%’
Find All instances of Files Being Deleted, Perhaps to see all of the Usernames performing the deletion:
The metadata encoding of Archive files facilitates the discovery of
pertinent information from the user perspective while ensuring that the
Archive contents will survive and continue to be accessible, until
otherwise specified, into the future.
action like ‘Loaded%’
Find All instances of Files Being Added, perhaps to see all of the Usernames performing the additions:
Action like ‘Adding%’
You can Also perform date-time based queries, for example you are trying to determine all the files added on 5 May 2007:
dtg like '5/5/2007%'
You can also perform username based queries, for example you are trying
to determine which files where added by the user "Administrator" on the
Computer System named "DRAGON-MOBILE"
computername like 'DRAGON-MOBILE' and username like 'Administrator'
you can combine these queries to find very detailed information
regarding the activity associated with a particular SqlFar using these
powerful queries!
You can Also Re-Use, Insert, Delete and Save Your Queries, Reload them
as you desire by using the "History" dialog Form Found on this
Application Dialog
The Archive File Content is detailed and enables you to review the
Archive’s content by querying the following fields using
standard SQL Syntax:
Available Fields to Query during a File Query:
uid =
this
is the ID of the File Entry, the uid is auto-incremented based on the
time the insertion took place fname = this
is the short file name, that is the file name without the original
directory path is_compressed
= this is a Boolean entry describing if the inserted file payload was
compressed when added is_encrypted
= this is a Boolean entry describing if the inserted file payload was
encrypted when added is_ro =
this
is a Boolean entry describing if the file inserted should be read only
(set by a secret key by the originator) ro_key = this is the SHA2 hash Key
that prohibits writing to this payload entry (must match =
true to modify|delete) size =
this
is the number of bytes the original file consumed on the host operating
system’s disk drive zip_size =
this is the number of bytes the gzipped compressed file consumed on the
host operating system’s disk drive atime =
this
is the Access time as recorded by the host operating system’s
disk drive prior to being inserted into the SqlFar ctime = this
is the Creation time as recorded by the host operating
system’s disk drive prior to being inserted into the SqlFar mtime =
this
is the last Modified time as recorded by the host operating
system’s disk drive prior to being inserted into the SqlFar verify =
this is the verification key used by SqlFar to perform internal
operations ver_hash =
this is an MD5 hash used by SqlFar to perform internal operations usern = this
is the username of the current SqlFar Operator groupn =
this is the group of the current user, using the current SqlFar env = this
is an optional KEY->VALUE hashtable describing
anything the creator wishes to add to this specific SqlFar hostname =
this is the hostname of the current computer manipulating the current
SqlFar osver = this
is the Operating System description of the computer manipulating the
current SqlFar orig_dir =
this is the Original Directory (folder) where the currently described
file originated from out_dir =
this is the pre-destined ouput directory for Self Extracting SqlFars
within a Secure Environment payload =
this is the null terminated (binary) file itself
You can query these fields using standard SQL (Search Query Language)
database syntax with one exception. You do not need to specify the
initial portion of the SQL query as it is provided for you.
For Example, if you wanted to show all of the instances where the
filename contains the character "d" and is compressed:
fname like '%d%' and is_compressed like ‘True’
The Following Examples Are Provided to help you perform simple Queries:
Find All instances files where the access time was 5 May 2007, Perhaps
to see all of the Usernames:
atime like '5/5/2007%'
Find All instances of UnCompressed Files:
is_compressed like 'False'
Find All instances of Compressed Files:
is_compressed like 'True'
You can also perform username and computername based queries:
Hostname like 'DRAGON-MOBILE' and usern like 'Administrator'
you can combine these queries to find very detailed information
regarding the file contents associated with a particular SqlFar using
these powerful queries!
You can Also Re-Use, Insert, Delete and Save Your Queries, Reload them
as you desire by using the Red "History" dialog button found on this
Application Dialog
Thank You!
This application and the utility it provides could not exist without the ADO.NET 2.0 SQLite data Provider, therefore I would like to extend Special thanks to:
ADO.NET 2.0 SQLite Data Provider
Version 1.0.40.0 January 31, 2007
Using
SQLite 3.3.12
Written by Robert Simpson ([email protected])
Released
to the public domain, use at your own risk!
Official provider website: http://sqlite.phxsoftware.com
SqlFar User Interface Error Codes (per the Sqlfar Archive Specification)
If you experience errors while using the SqlFar User Interface, please notify me and let us know which code you noticed and what you where doing when you noticed the error.
Many of the SqlFar errors are not fatal, they represent notification of
features that have yet to be implemented completely, such as Sfar
tracking, encryption, SHA2 key creation/key resolution
Error 7001 - Cant Load History
Error 7002 - Cant Hide Myself
Error 7003 - Error Opening File Dialog
Error 7004 - Cant Load History XML File
Error 7005 - Can't Load The Query History, While Displaying XML Nodes
Error 7006 - Target Class Saving ERROR While Trying to Save XML File:
Error 7007 - ERROR While Trying to Flush History to XML File (File Exists)
Error 7008 - ERROR While Trying to Flush History to XML File (File Does Not Exist)
Error 6001 - Error Opening Add New Files Dialog
Error 6002 - Error Specifying Compression
Error 6003 - Error While Closing Myself
Error 5001 - Error During Drag Enter
Error 5002 - Error Processing Dropped Files
Error 5003 - Error While Closing During Drop Session
Error 5004 - Error Trying To Insert New Files Into Sqlfar
Error 5005 - Error Launching Terramagnetoscope Website
Error 5006 - Error Loading The Application About Box
Error 4001 - Error While Creating New SqlFar Object
Error 1001 - Error While Trying To Flush The Query History
Error 1002 - Error While Loading The Main Form
Error 1003 - Aggregate Error During SqlFar Creation
Error 1004 - Create Table ERROR While Creating Attributes
Error 1005 - Create Table ERROR While Creating History Table
Error 1006 - Initial Insert Error
Error 1007 - Aggregate Error During SqlFar Creation From Toolbar
Error 1008 - Error Creating Attributes From Toolbar
Error 1009 - Error Creating History From Toolbar
Error 1010 - Error Performing Initial Insert From Toolbar
Error 1011 - Cannot Add Files Error
Error 1012 - Aggregate Insert Files Error
Error 1013 - Error Adding File Uncompressed
Error 1014 - Error Adding File Uncompressed When Compression Failed
Error 1015 - Error Adding File Compressed
Error 1016 - Error While Updating The User Interface
Error 1017 - Error While Extracting Files
Error 1018 - Error While Extracting Files From Tool Strip
Error 1019 - Error While Opening The File Dialog
Error 1020 - Error During Initialization
Error 1021 - Error During SqlFar Initialization
Error 1022 - Error Displaying SqlFar Initialization
Error 1023 - Error While Updating History
Error 1024 - Error Fetching Quick History
Error 1025 - Error During Deletion
Error 1026 - Error During ToolStrip Deletion
Error 1027 - Error During DragDrop Reception
Error 1028 - Error During DragDrop Entry
Error 1029 - Error Showing History Object
Error 1030 - Error Inserting File Query History
Error 1031 - Error Inserting File History Query String
Error 1032 - Error Fetching History Table
Error 1033 - Error Clearing User Interface
Error 1034 - Error Trying To Add Files To SqlFar
Error 1035 - Error Trying Delete Files From SqlFar
Error 1036 - Error Trying Extract Files From SqlFar
Error 1037 - Error Show the History User Interface
Error 1038 - Error Extracting Files
Error 1039 - Error During Toolstrip Deletion Of Files
Error 1040 - Error Refreshing SqlFar Content
This document describes the concepts and way ahead (if there is one) for
the SqlFar Archiving Tool
Metadata is ordered information that describes, elucidates, locates, or
enhances data retrieval, use of data sets, or management of an
information resource based on associated, structured object
definition(s).
The metadata encoding of Archive files facilitates the discovery of
pertinent information from the user perspective while ensuring that the
Archive contents will survive and continue to be accessible, until
otherwise specified, into the future.
The SqlFar is a new type of archiving schema that this user interface
facilitates user access and ability to
add/remove files to and from a portable SQLite database;
while encoding/recording data access and other payload parameters.
Metadata encoding is critical to ensuring data integrity and providing a great timeline of access activity.
While much of
the security and authentication access mechanisms have been disabled
in the public version, we hope to have it back in place, fully
implemented soon. In the interim, this should not deter individuals
from using the SqlFar Interface and Archive specification as it is
robust and stable in its current form.
The SqlFar Archive Schema Ver 1.1.0 is under development currently,
until it is available... please read about the initial, currently
implemented schema below.
SqlFar Archive Schema Ver 1.0.0
The SqlFar Archive is created by creating a blank Sqlite V3 database file and then inserting 3 tables into it.
table "attributes" pass_auth - Password authorization (is access to this archive password authenticated? YES|NO) password - Password (Key 2 for accessing payload content) creator - Identification of the
archive's creator, can be Md5 hash or other serializable identification
string (or just a person's name) creator_sig - Creator public signature (Key 1 for accessing payload content) org - An organization identification (Could be office, branch, etc) classy - This Archive's classification ("Personal", "Proprietary", or more heirichial, structured classification) destry_when - Date when this archive is eligible for destruction history - Archive proper use instructions, intent of use, any disclaimers or legal statements
table "history" dtg = Date Time of the local system when the action took place action =
This is the field
containing the actual activity which occurred
(add|accessed|loaded|extract|peek|created|queried|deleted|other) os = This field describes the Operating System of the user when the specified action took place platform = This field describes the platform of the user when the specified action took place operatingsys = This field describes the operating system version number of the user when the specified action took place pmem =
This field describes the total Physical Memory on the system using the SqlFar computername = This field describes the hostname of the computer system currently manipulating the SqlFar screenxy = This field describes
the computer’s screen dimensions (in pixels) of the computer
system currently manipulating the SqlFar username = This field describes the username of the individual currently manipulating the SqlFar
table "htoc" uid =
this
is the ID of the File Entry, the uid is auto-incremented based on the
time the insertion took place fname = this
is the short file name, that is the file name without the original
directory path is_compressed
= this is a Boolean entry describing if the inserted file payload was
compressed when added is_encrypted
= this is a Boolean entry describing if the inserted file payload was
encrypted when added is_ro =
this
is a Boolean entry describing if the file inserted should be read only
(set by a secret key by the originator) ro_key =
this is the MD5 | SHA2 (any) hash Key for this row (only) that prohibits writing to this payload entry
(must match = true to modify|delete) Blanket read only access can be prohibited by attributes table size =
this
is the number of bytes the original file consumed on the host operating
system’s disk drive zip_size =
this is the number of bytes the gzipped compressed file consumed on the
host operating system’s disk drive atime =
this
is the Access time as recorded by the host operating system’s
disk drive prior to being inserted into the SqlFar ctime = this
is the Creation time as recorded by the host operating
system’s disk drive prior to being inserted into the SqlFar mtime =
this
is the last Modified time as recorded by the host operating
system’s disk drive prior to being inserted into the SqlFar verify =
this is the verification key used by SqlFar to preform internal
operations ver_hash =
this is an MD5 hash used by SqlFar to perform internal operations usern = this
is the username of the current SqlFar Operator groupn =
this is the group of the current user, using the current SqlFar env = this
is an optional KEY->VALUE hashtable describing
anything the creator wishes to add to this specific SqlFar it should NOT be encrypted by default hostname =
this is the hostname of the current computer manipulating the current
SqlFar osver = this
is the Operating System description of the computer manipulating the
current SqlFar orig_dir =
this is the Original Directory (folder) where the currently described
file originated from out_dir =
this is the pre-destined ouput directory for Self Extracting SqlFars
within a Secure Environment payload =
this is the null terminated (binary) file itself
After the file is created, all accesses should be added to the history
table as an action
(add|accessed|loaded|extract|peek|created|queried|deleted|other).
Removal or modification of the history entries can be prevented by
requiring 2 key authentication prior to retrieving/decrypting
enciphered history tables.The same retrieval process is required for
secure access to each row payload which optionally is decrypted with a
separate, centrally located key.
Version 1.1
1. Re-implement the sensor-to-SqlFar direct logging function
2. Future Transport should include Corporate/Enterprise style
SqlFar Servers and should allowing individuals to share, upload
archives in a centralized location for common types (sensor log
files, collaboration information)
3. Virus extraction protection should be implemented in version 1.1
using available examination means during CRC verification. This will
re-enable the file-peek function allowing temporary extraction of files
for temporal viewing
4. Re-implement two key, shared key read-only/authentication schema
5. Middleware interface development allowing users to create a SqlFar
Archive's for 'connecting' to datastores (such as outlook or webmail)
enabling portable data storage archives important, not-so-portable
software applications. This will enable individuals to access their
information stores on a variety of platforms regardless of application
interface (i.e thumbdrive or other portable storage)
Click Here To Downloada
Movie of the SqlFar In Action... This was taken using VMWARE
Workstation 5.5 which I find to be an INVALUABLE tool. You can
normally see the video fine if you are viewing with Windows media
player but if not, you may need to download the Video Codec (For Free From VMWARE Folks HERE).