<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>GenuineJD</title>
			<link>http://www.genuinejd.com/blog/index.cfm</link>
			<description>coldfusion, flex, flash, air, google, android...and other random tech stuff</description>
			<language>en-us</language>
			<pubDate>Mon, 21 May 2012 07:49:14 -0500</pubDate>
			<lastBuildDate>Wed, 14 Dec 2011 23:46:00 -0500</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>jack@genuinejd.com</managingEditor>
			<webMaster>jack@genuinejd.com</webMaster>
			
			
			
			
			
			<item>
				<title>Flex Ant flexTasks, Manifests and Library Includes</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2011/12/14/Flex-Ant-flexTasks-Manifests-and-Library-Includes</link>
				<description>
				
				&lt;p&gt;I recently was working on a framework project where one of our front-end developers had written several UI components in Flash Profressional and compiled them into a SWC for me to leverage in an ActionScript project in Flash Builder. &amp;nbsp;Aside from the compiled SWF, we also had to deliver a SWC to third-party vendors that were developing content against our framework. &amp;nbsp;The SWC had to include a small subset of event classes from the ActionScript project along with the UI components library from my front-end dev.&lt;/p&gt;
&lt;p&gt;The first step was to leverage the flexTasks Ant library included with the Flex SDK to use the compc task. &amp;nbsp;This is simple enough by specifying the classpath to the flexTasks.jar. &amp;nbsp;The next step was to create a manifest file specifying the classes in my ActionScript project that should be included in the SWC. &amp;nbsp;This involves defining a namespace for the manifest, then including the namespace in the compc task. &amp;nbsp;The final step was including the externally compiled SWC for the UI components. &amp;nbsp;As simple as it turned out to be, this was a much more difficult task to accomplish, primarily because of the lack of good documentation and examples from Adobe. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Below are examples of the manifest and ant builder files I ended up using for the project. &amp;nbsp;Keep in mind some variables Ant variables are defined outside of the builder file itself as Ant properties in the builder launch configuration setup in Eclipse.&lt;/p&gt;
&lt;p&gt;manifest.xml&lt;/p&gt;
&lt;div class=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;lt;componentPackage&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;component class=&quot;com.genuinejd.events.NavEvent&quot;/&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;component class=&quot;com.genuinejd.events.LayoutEvent&quot;/&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;component class=&quot;com.genuinejd.events.ReferenceEvent&quot;/&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;component class=&quot;com.genuinejd.events.ModalEvent&quot;/&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;lt;/componentPackage&amp;gt;&lt;/div&gt;
&lt;p&gt;builder.xml&lt;/p&gt;
&lt;div class=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;br /&gt;&amp;lt;project name=&quot;SWC Builder&quot; basedir=&quot;.&quot;&amp;gt; &amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;SOURCE_DIR&quot; value=&quot;${basedir}/src&quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;taskdef resource=&quot;flexTasks.tasks&quot; classpath=&quot;${FLEX_HOME}/ant/lib/flexTasks.jar&quot; /&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;target name=&quot;main&quot;&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;compc output=&quot;${OUTPUT_DIR}/Lib.swc&quot; &amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;source-path path-element=&quot;${SOURCE_DIR}/&quot;/&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;namespace uri=&quot;http://genuinejd.com/2011&quot; manifest=&quot;${basedir}/manifest.xml&quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;include-namespaces&amp;gt;http://genuinejd.com/2011&amp;lt;/include-namespaces&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;compiler.include-libraries dir=&quot;${SOURCE_DIR}/../libs&quot; append=&quot;true&quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;include name=&quot;UI_controls.swc&quot; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/compiler.include-libraries&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/compc&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/target&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;target name=&quot;clean&quot;&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;delete&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;fileset dir=&quot;${OUTPUT_DIR}&quot; includes=&quot;Lib.swc&quot;/&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/delete&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/target&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
				
				</description>
						
				
				<category>Flash Builder</category>				
				
				<category>Adobe</category>				
				
				<category>Flex</category>				
				
				<category>Ant</category>				
				
				<category>ActionScript</category>				
				
				<pubDate>Wed, 14 Dec 2011 23:46:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2011/12/14/Flex-Ant-flexTasks-Manifests-and-Library-Includes</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Building FFmpeg for Windows on Linux - Part 2 - Setting Up the Build Environment and Extra Libraries</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2011/4/7/Building-FFmpeg-for-Windows-on-Linux--Part-2--Setting-Up-the-Build-Environment-and-Extra-Libraries</link>
				<description>
				
				&lt;p&gt;In the last article, I explained how to install Ubuntu 10.10 64-bit using the VirtualBox software and get the instance of Ubuntu all up to date. &amp;nbsp;This article will focus on getting our build environment set up for compiling FFmpeg. &amp;nbsp;This part is arguably the most difficult as it involves not only setting up the compilation tools, but also cross-compiling additional libraries to be used with FFmpeg that are not included by default. &amp;nbsp;If you using the same &lt;em&gt;exact&lt;/em&gt;&amp;nbsp;software and versions as described in my introduction, this should be as easy as following directions step by step. &amp;nbsp;Let&apos;s get started...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open a terminal window in the Ubuntu guest system (Applications -&amp;gt; Accessories -&amp;gt; Terminal). &amp;nbsp;Most of the work will be performed here for the rest of this series.&lt;/li&gt;
&lt;li&gt;Most of the hard work has been done for us by a gentleman who maintains the site at arrozcru.org. &amp;nbsp;To use his libraries for cross-compiling, download and import his gpg key and update your packages list                               
&lt;ul&gt;
&lt;li&gt;Download and import the gpg key to your system&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ gpg --keyserver www.keyserver.net --recv-key 0x25E635F9&lt;br /&gt; ~$ gpg --export --armor 0x25E635F9 | sudo apt-key add -&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Add the apt repositories to your sources.list file&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ echo &quot;deb http://apt.arrozcru.org ./&quot; | sudo tee -a /etc/apt/sources.list&lt;br /&gt; ~$ echo &quot;deb-src http://apt.arrozcru.org ./&quot; | sudo tee -a /etc/apt/sources.list&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Update your package list&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ sudo apt-get update&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Set up and install the cross toolchain. &amp;nbsp;If you are working with a version of Ubuntu other than 10.10 or the 32-bit version, be sure to follow Option 1 to recompile the toolchain. &amp;nbsp;If you are using Ubuntu 10.10 64-bit, be sure to follow Option 2.                               
&lt;ul&gt;
&lt;li&gt;Option 1&lt;ol&gt;
&lt;li&gt;Create cross toolchain directory and install dev tools&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ mkdir cross&lt;br /&gt; ~$ cd cross&lt;br /&gt; ~/cross$ sudo apt-get install dpkg-dev debhelper autotools-dev libmpfr-dev libgmp3-dev libppl0.10-dev libcloog-ppl-dev libmpc-dev&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Install the mingw api and runtime&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~/cross$ sudo apt-get install mingw32-w32api mingw32-runtime&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Recompile and deploy mingw binutils&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~/cross$ apt-get source --compile mingw32-binutils&lt;br /&gt; [lots of output not shown here]&lt;br /&gt; ~/cross$ sudo dpkg -i mingw32-binutils_*.deb&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Recompile and deploy mingw gcc 4.4&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~/cross$ apt-get source --compile mingw32-gcc-4.4&lt;br /&gt; [lots of output not shown here]&lt;br /&gt; ~/cross$ sudo dpkg -i mingw32-gcc-4.4_*.deb&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Install mingw binutils and gcc&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~/cross$ sudo apt-get install mingw32-binutils mingw32-gcc-4.4&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Option 2&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ sudo apt-get install mingw32-w32api mingw32-runtime mingw32-gcc-4.4 mingw32-binutils&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Patch the cross toolchain with Arrozcru&apos;s patches                             
&lt;ul&gt;
&lt;li&gt;Install patch to patch the cross toolchain&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ sudo apt-get install patch&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Download patches from Arrozcru&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ mkdir mingw32-patches&lt;br /&gt; ~$ cd mingw32-patches&lt;br /&gt; ~/mingw32-patches$ wget http://fate.arrozcru.org/mingw32/patches/tempnam.diff&lt;br /&gt; ~/mingw32-patches$ wget http://fate.arrozcru.org/mingw32/patches/strcasecmp.diff &lt;br /&gt; ~/mingw32-patches$ wget http://fate.arrozcru.org/mingw32/patches/nomt.diff&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Patch the cross toolchain&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~/mingw32-patches$ cd /usr/i686-mingw32&lt;br /&gt; /usr/i686-mingw32$ sudo patch -p2 &amp;lt; /home/corpapps/mingw32-patches/tempnam.diff&lt;br /&gt; /usr/i686-mingw32$ sudo patch -p2 &amp;lt; /home/corpapps/mingw32-patches/strcasecmp.diff&lt;br /&gt; /usr/i686-mingw32$ sudo patch -p2 &amp;lt; /home/corpapps/mingw32-patches/nomt.diff&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Compile extra libs as needed                             
&lt;ul&gt;
&lt;li&gt;Get and build libfaac&lt;ol&gt;
&lt;li&gt;Download and extract faac-1.28.tar.bz2&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ wget http://downloads.sourceforge.net/faac/faac-1.28.tar.bz2&lt;br /&gt; ~$ tar -xvf faac-1.28.tar.bz2&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Configure and build libfaac&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ cd faac-1.28&lt;br /&gt; ~/faac-1.28$ ./configure --host=i686-mingw32 --prefix=/usr/i686-mingw32 --enable-static --disable-shared --with-mp4v2=no&lt;br /&gt; ~/faac-1.28$ make&lt;br /&gt; [lots of output not included here]&lt;br /&gt; ~/faac-1.28$ sudo make install&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Install extra libs from Arrozcru&apos;s apt repository                             
&lt;ul&gt;
&lt;li&gt;You will need to determine what libraries to install using&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ apt-cache search mingw32-&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Install each library one at a time using sudo apt-get install mingw32-&amp;lt;pkg-name&amp;gt; or copy/paste the string below&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ sudo apt-get install mingw32-ocaml mingw32-libmp3lame mingw32-bzip2 mingw32-libcloog-ppl mingw32-libsdl mingw32-libppl mingw32-libx264 mingw32-libopenjpeg mingw32-polarssl mingw32-libmpc mingw32-libfaad2 mingw32-librtmp mingw32-libtheora mingw32-libxvid mingw32-libmpfr mingw32-openssl mingw32-libgmp mingw32-libschroedinger mingw32-liborc mingw32-libvorbis mingw32-libogg mingw32-libspeex mingw32-pthreads mingw32-directx mingw32-zlib mingw32-libgsm mingw32-liboil mingw32-libopencore-amr&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;That&apos;s it! &amp;nbsp;The hardest part of cross-compiling FFmpeg for Windows is in the setup; getting the cross-compiler and the libraries ready. &amp;nbsp;One thing to notes is that several times when trying to download the gpg key for arrozcru, the keyserver timed out. &amp;nbsp;I did have luck removing the keyserver argument and attempting to download it with the following command&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;code&quot;&gt;~$ gpg --recv-key 0x25E635F9&lt;/div&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;In the next and final article, I will outline how to setup the directories we&apos;ll use for downloading the FFmpeg source, configuring and building it.&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
				
				</description>
						
				
				<category>Open Source</category>				
				
				<category>FFmpeg</category>				
				
				<category>Ubuntu</category>				
				
				<pubDate>Thu, 07 Apr 2011 15:23:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2011/4/7/Building-FFmpeg-for-Windows-on-Linux--Part-2--Setting-Up-the-Build-Environment-and-Extra-Libraries</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Building FFmpeg for Windows on Linux - Part 1 - Setting Up the Virtual Environment</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2011/3/14/Building-FFmpeg-for-Windows-on-Linux--Part-1--Setting-Up-the-Virtual-Environment</link>
				<description>
				
				&lt;p&gt;The first part of this tutorial will cover setting up the virtual instance of Ubuntu 10.10 on a Windows 7 64-bit laptop using VirtualBox. &amp;nbsp;The steps below will outline the entire process to get your virtual evironment ready to compile FFmpeg.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download and install VirtualBox for Windows hosts&lt;br /&gt;&lt;a href=&quot;http://www.virtualbox.org/wiki/Downloads&quot; target=&quot;_blank&quot;&gt;http://www.virtualbox.org/wiki/Downloads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download Ubuntu Desktop Edition 10.10 64-bit ISO&lt;br /&gt;&lt;a href=&quot;http://www.ubuntu.com/desktop/get-ubuntu/download&quot; target=&quot;_blank&quot;&gt;http://www.ubuntu.com/desktop/get-ubuntu/download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Create a new VirtualBox virtual machine and install Ubuntu from the downloaded ISO                              
&lt;ul&gt;
&lt;li&gt;VM Name and OS Type                              
&lt;ul&gt;
&lt;li&gt;Name: Ubuntu 10.10&lt;/li&gt;
&lt;li&gt;Operating System: Linux&lt;/li&gt;
&lt;li&gt;Version: Ubuntu (64 bit)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Memory: 512 MB (Default) - I increased this to speed up the process a bit. &amp;nbsp;If you have more RAM to allocate to this VM, go ahead and do so.&lt;/li&gt;
&lt;li&gt;Virtual Hard Disk                              
&lt;ul&gt;
&lt;li&gt;Boot Hard Disk: Checked&lt;/li&gt;
&lt;li&gt;Create new hard disk: Selected                              
&lt;ul&gt;
&lt;li&gt;Storage Type: Dynamically expanding storage&lt;/li&gt;
&lt;li&gt;Virtual Disk Location: Default&lt;/li&gt;
&lt;li&gt;Virtual Disk Size: 8.00 GB (at least 6 GB is recommended)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add the Ubuntu ISO as a CD Drive &lt;ol&gt;
&lt;li&gt;Select the newly created VM and click Settings&lt;/li&gt;
&lt;li&gt;In the Settings dialog, select Storage from the left side menu&lt;/li&gt;
&lt;li&gt;In the Storage Tree, select Empty under IDE Controller, then click the folder icon to the right of the CD/DVD Device drop-down to open the Virtual Media Manager&lt;/li&gt;
&lt;li&gt;Click the Add button to add the Ubuntu 10.10 ISO that you downloaded above&lt;/li&gt;
&lt;li&gt;Select the ISO that you just added and click the Select button&lt;/li&gt;
&lt;li&gt;Verify that the ISO has been added to the CD/DVD Device and click the OK button to close the Settings dialog and accept the changes.&lt;/li&gt;
&lt;/ol&gt; &lt;/li&gt;
&lt;li&gt;Start the VM and follow the Ubuntu installation instructions&lt;ol&gt;
&lt;li&gt;When Ubuntu first loads from the CD (ISO), it will prompt you to either Try Ubuntu or Install. &amp;nbsp;Select Install.&lt;/li&gt;
&lt;li&gt;Preparing to install Ubuntu                             
&lt;ul&gt;
&lt;li&gt;Download updates while installing: Unchecked. &amp;nbsp;We will install updates after the installation&lt;/li&gt;
&lt;li&gt;Install this third-party software: Unchecked. &amp;nbsp;This is not necessary for our purposes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Allocate drive space: Erase and use the entire disk (use defaults on next screen [select drive])&lt;/li&gt;
&lt;li&gt;Click the Install Now button&lt;/li&gt;
&lt;li&gt;During installation, select the appropriate options for timezone and keyboard layout&lt;/li&gt;
&lt;li&gt;Who are you? Create a username and password, be sure to either write down this information or remember it so you can login to Ubuntu later.&lt;/li&gt;
&lt;li&gt;Sit back and wait for Ubuntu to finish installing, it takes about 10-15 minutes depending on the allocated resources of the VM.&lt;/li&gt;
&lt;li&gt;Once the installation has finished, you&apos;ll be prompted to restart. &amp;nbsp;Go ahead and restart, and if it prompts you to remove installation media, do so by opening the menu Devices -&amp;gt; CD/DVD Devices and click Ubuntu 10.10 ISO to un-check it.&lt;/li&gt;
&lt;li&gt;After restart, login to Ubuntu with the username/password entered during installation&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Run all Ubuntu updates, either via Update Manager or apt-get. &amp;nbsp;Either option will take some time to download and install updates. &amp;nbsp;Get and install updates until there are no updates left.                            
&lt;ul&gt;
&lt;li&gt;Update Manager&lt;ol&gt;
&lt;li&gt;Open the Update Manager in Ubuntu under the System -&amp;gt; Administration menu (it may open automatically after having been logged in for a minute)&lt;/li&gt;
&lt;li&gt;When the Update Manager opens, click the Install Updates button and enter your password when prompted to Authenticate&lt;/li&gt;
&lt;li&gt;Wait for the updates to install, this may take several minutes&lt;/li&gt;
&lt;li&gt;After the updates are installed, restart and log back in&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;apt-get&lt;br /&gt;Open a terminal (Applications -&amp;gt; Accessories -&amp;gt; Terminal) and enter the following commands&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;~$ sudo apt-get update &lt;br /&gt;~$ (output removed) &lt;br /&gt;~$ sudo apt-get upgrade &lt;br /&gt;~$ (output removed)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Install VM Additions - this will make it a little easier to interact with your guest operating system&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;In the VM host window, select Devices -&amp;gt; Install Guest Additions... to &quot;insert&quot; the VM Additions Cd into the VM&lt;/li&gt;
&lt;li&gt;Mount the CD in the guest VM by selecting Places -&amp;gt; VBOXADDITIONS_x.x.xx_xxxxx&lt;/li&gt;
&lt;li&gt;This should cause a &quot;Places&quot; window to open which indicates &quot;The media has been detected as &apos;UNIX software&apos;. &amp;nbsp;Click the Open Autorun Prompt, then click the Run button when prompted to confirm&lt;/li&gt;
&lt;li&gt;Enter your password if prompted to perform administrative tasks and click the OK button&lt;/li&gt;
&lt;li&gt;VM addittions will open a new terminal window and be uncompressed, built and installed&lt;/li&gt;
&lt;li&gt;When it is finished, press Return (Enter) to close the build window&lt;/li&gt;
&lt;li&gt;Restart to finish enabling VM additions&lt;/li&gt;
&lt;li&gt;After restarting and logging back in, you can &quot;eject&quot; the VM additions CD by right-clicking the desktop icon, and selecting Eject, then under the VM host window, select Devices -&amp;gt; CD/DVD -&amp;gt; VBoxGuestAdditions.iso to un-check the ISO.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;Your virtual instance of Ubuntu has now been installed and updated. &amp;nbsp;At this point, you can do with it what you like. &amp;nbsp;In the next part of this series, I will cover the steps needed to set up the build environment and all required libraries for FFmpeg.&lt;/div&gt;
&lt;ol&gt; &lt;/ol&gt;
				
				</description>
						
				
				<category>VirtualBox</category>				
				
				<category>Open Source</category>				
				
				<category>FFmpeg</category>				
				
				<category>Ubuntu</category>				
				
				<pubDate>Mon, 14 Mar 2011 15:27:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2011/3/14/Building-FFmpeg-for-Windows-on-Linux--Part-1--Setting-Up-the-Virtual-Environment</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Building FFmpeg for Windows on Linux - Introduction</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2011/3/9/Building-FFmpeg-for-Windows-on-Linux--Introduction</link>
				<description>
				
				&lt;p&gt;At work, we deal with a lot of video production. &amp;nbsp;Those videos need to constantly be reviewed and approved by various legal staff. &amp;nbsp;To support this workflow, we decided to implement a video reviewing and management application. &amp;nbsp;The web application was the easy part. &amp;nbsp;Our technology stack was based around a lot of Adobe products, so we decided on Flash Media Server for our streaming infrastructure. &amp;nbsp;The difficult part was getting the video files in a format to stream using our streaming technology. &amp;nbsp;Encoding solutions that could scale easily were expensive. &amp;nbsp;So after evaluating several options, we decided to write our own solution to handle video encoding.&lt;/p&gt;
&lt;p&gt;At first we started using an automated binary build of FFmpeg from&amp;nbsp;&lt;a href=&quot;http://ffmpeg.arrozcru.org/&quot;&gt;http://ffmpeg.arrozcru.org/&lt;/a&gt;&amp;nbsp;and just wrapped some C# code around it (thanks to a suggestion from my brother-in-law). &amp;nbsp;This worked fine in the beginning, but as our format and encoding option needs changed, we could no longer rely on the generic automated builds. &amp;nbsp;We needed to be able to build our own binary of FFmpeg with specific libraries included. &amp;nbsp;Additionally, at the time of this writing, that site no longer hosts the automated builds.&lt;/p&gt;
&lt;p&gt;This ended up being a far more complicated task than I imagined. &amp;nbsp;There was some documentation in various places, but nothing that specifically walked through the process step-by-step for someone unfamiliar with the process. &amp;nbsp;Once I was finally able to successfully compile and build FFmpeg, I decided I needed to document the entire procedure. &amp;nbsp;This series of blog posts will attempt to document and identify the entire process I went through to accomplish this. &amp;nbsp;Some steps may seem obvious, but I will include information for those that may have no knowledge of compiling and building software such as FFmpeg.&lt;/p&gt;
&lt;p&gt;This process is written based on the following specifications:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dell Latitude E6500 Intel C ore 2 Duo P8700 2.54 GHz 4.00 GB RAM&lt;/li&gt;
&lt;li&gt;Windows 7 Professional 64-bit (using a 32-bit OS should be fine, but you will need to recompile the cross&amp;nbsp;toolchain)&lt;/li&gt;
&lt;li&gt;Oracle VM VirtualBox Version 3.2.10 r66523 (&lt;a href=&quot;http://www.virtualbox.org/&quot;&gt;http://www.virtualbox.org/&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Ubuntu 10.10 64-bit (&lt;a href=&quot;http://www.ubuntu.com/&quot;&gt;http://www.ubuntu.com/&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Stay tuned for the first set of details on setting up the virtual environment using VirtualBox and Ubuntu.&lt;/p&gt;
				
				</description>
						
				
				<category>VirtualBox</category>				
				
				<category>Open Source</category>				
				
				<category>FFmpeg</category>				
				
				<pubDate>Wed, 09 Mar 2011 19:04:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2011/3/9/Building-FFmpeg-for-Windows-on-Linux--Introduction</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Cr-48 Chrome OS Beta Update 0.10.156.46</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2011/3/3/Cr48-Chrome-OS-Beta-Update-01015646</link>
				<description>
				
				&lt;p&gt;I was lucky enough to receive a Cr-48 just before Christmas (thanks Santa!). &amp;nbsp;I don&apos;t do anything really crazy with it. &amp;nbsp;You know, email, surfing, the occasional Google Docs editing, etc. &amp;nbsp;Having the 3G has come in very handy, though. &amp;nbsp;Anyway, I just got the Beta channel update for 0.10.156.46, which includes an update to Google Chrome 10.0.648.116. &amp;nbsp;So far, it sounds like mostly bug fixes, none of which I have experienced. &amp;nbsp;After the last update, I noticed the startup time and general usage seemed to slow down a bit. &amp;nbsp;I&apos;m hoping I&apos;ll see a little performance boost.&lt;/p&gt;
&lt;p&gt;Here&apos;s the post regarding this update:&amp;nbsp;&lt;a href=&quot;http://googlechromereleases.blogspot.com/2011/03/chrome-os-beta-channel-update.html&quot;&gt;http://googlechromereleases.blogspot.com/2011/03/chrome-os-beta-channel-update.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Additionally, I recently turned on &lt;a href=&quot;http://goo.gl/5Fnrx&quot; target=&quot;_blank&quot;&gt;2-step verification&lt;/a&gt; security for my Google account. &amp;nbsp;So far so good. &amp;nbsp;I do feel a bit better knowing there&apos;s an extra layer of security around my account. &amp;nbsp;That&apos;s all fine and good, however, on my Cr-48, I was seeing a Sync Error and my Chrome bookmarks and plugins weren&apos;t syncing. &amp;nbsp;Pressing the button that was supposed to let me enter a password did nothing.&lt;/p&gt;
&lt;p&gt;After this update, I was able to correct the issue by opening Settings -&amp;gt; Personal Stuff and selecting to sign-in. &amp;nbsp;After entering my password, I had to generate an application specific password, and I was good to go!&lt;/p&gt;
				
				</description>
						
				
				<category>Chrome OS</category>				
				
				<category>Google</category>				
				
				<pubDate>Thu, 03 Mar 2011 23:28:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2011/3/3/Cr48-Chrome-OS-Beta-Update-01015646</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Google Voice 0.2.8 for Android 1.5 on HTC Droid Eris</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2010/1/6/Google-Voice-028-for-Android-15-on-HTC-Droid-Eris</link>
				<description>
				
				&lt;p&gt;After having a &lt;a href=&quot;http://www.blackberry.com/&quot; target=&quot;_blank&quot;&gt;BlackBerry&lt;/a&gt; for about three years and loving it for work email, calendar, contacts, etc, I recently decided to make a switch and picked up the &lt;a href=&quot;http://www.htc.com/us/products/droid-eris-verizon/&quot; target=&quot;_blank&quot;&gt;HTC DROID Eris&lt;/a&gt; for &lt;a href=&quot;http://www.verizonwireless.com/b2c/store/controller?item=phoneFirst&amp;amp;action=viewPhoneDetail&amp;amp;selectedPhoneId=5070&quot; target=&quot;_blank&quot;&gt;Verizon&lt;/a&gt;.&amp;nbsp; I&apos;m a big fan of most things Google, so I knew I would love this device.&amp;nbsp; I won&apos;t go into the details of why or give my own review, but I did want to touch on one thing that really frustrated me.&lt;/p&gt;
&lt;p&gt;I have a &lt;a href=&quot;http://www.google.com/voice&quot; target=&quot;_blank&quot;&gt;Google Voice&lt;/a&gt; account, which I also love.&amp;nbsp; It no longer matters if I switch phones or don&apos;t get service.&amp;nbsp; I have one number, and I can set it up to ring anywhere.&amp;nbsp; Plain and simple.&amp;nbsp; The downside was not having my Google Voice number show up on peoples&apos; caller ids.&amp;nbsp; Not a big deal, but irritating.&amp;nbsp; Enter the &lt;a href=&quot;http://www.google.com/mobile/products/voice.html#p=android&quot; target=&quot;_blank&quot;&gt;Google Voice app&lt;/a&gt; (available on many platforms).&lt;/p&gt;
&lt;p&gt;When I first installed the app (version 0.2.7) it worked great.&amp;nbsp; I could make calls from my Eris and people would see my GV number instead of my Verizon number.&amp;nbsp; After an updated 0.2.8 was released, suddenly, I was receiving, &quot;network busy&quot; or &quot;network unavailable&quot; messages and I couldn&apos;t make any calls.&lt;/p&gt;
&lt;p&gt;Sure I could browse to the GV webpage and initiate calls from there, have GV call me on my device, then connect the call, but what a huge pain.&amp;nbsp; After no responses from a Google rep on a &lt;a href=&quot;http://www.google.com/support/forum/p/Google+Mobile/thread?tid=129988a5c1f44a66&quot; target=&quot;_blank&quot;&gt;thread&lt;/a&gt; in the GV help forum, someone figured out that the app was putting a + in front of the bridge number, which was causing the call to fail.&lt;/p&gt;
&lt;p&gt;With no way to configure this and still no response, it seemed unlikely that I&apos;d be able to use GV on my device any time soon.&amp;nbsp; Someone else finally mentioned that there is a way to remove the extra + in front of the number: clear the dialer app data.&lt;/p&gt;
&lt;p&gt;Menu -&amp;gt; Settings -&amp;gt; Applications -&amp;gt; Dialer -&amp;gt; Clear Data&lt;/p&gt;
&lt;p&gt;Simple as that.&amp;nbsp; Periodically, I find the app resorts to adding the + in front of the number, but clearing the dialer app data seems to fix it each time.&amp;nbsp; While this is only a workaround, and hopefully Google will fix this in a near-future release, I am able to use my Google Voice number again, and it works great!&lt;/p&gt;
				
				</description>
						
				
				<category>Google</category>				
				
				<category>Android</category>				
				
				<pubDate>Wed, 06 Jan 2010 17:49:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2010/1/6/Google-Voice-028-for-Android-15-on-HTC-Droid-Eris</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Adding Windows 7 64-bit PDF Indexing</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2009/12/31/Adding-Windows-7-64bit-PDF-Indexing</link>
				<description>
				
				&lt;p&gt;I have been using Windows 7 64-bit since its official release in October and have loved everything about it so far.&amp;nbsp; I was surprised at first when my PDFs weren&apos;t getting indexed, but was happy to know that it took very little work to get it to index them in just a few easy steps.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify that PDF files are selected for indexing&lt;br /&gt; 
&lt;ul&gt;
&lt;li&gt;Open the Indexing Options by clicking Start and typing, &quot;indexing options&quot; (without the quotes) and hitting enter&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Click the &lt;strong&gt;Advanced&lt;/strong&gt; button&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Select the &lt;strong&gt;File Types&lt;/strong&gt; tab&lt;/li&gt;
&lt;li&gt;Scroll down to .pdf, which should already be selected, but probably says, &quot;Registered IFilter not found&quot;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Download and install the &lt;a href=&quot;http://www.adobe.com/support/downloads/thankyou.jsp?ftpID=4025&amp;amp;fileID=3941&quot; target=&quot;_blank&quot;&gt;Adobe PDF iFilter 9 for 64-bit platforms&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&apos;s it!&amp;nbsp; You may need to rebuild the index (click click the &lt;strong&gt;Rebuild&lt;/strong&gt; button in the Indexing Options), but afterwards, you should be able to search on PDF content.&amp;nbsp; 32-bit users should be able to index PDFs out of the box.&lt;/p&gt;
				
				</description>
						
				
				<category>Adobe</category>				
				
				<category>Windows 7</category>				
				
				<pubDate>Thu, 31 Dec 2009 13:04:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2009/12/31/Adding-Windows-7-64bit-PDF-Indexing</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Reading Embedded XMP Packets using ColdFusion</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2009/2/20/Reading-Embedded-XMP-Packets-using-ColdFusion</link>
				<description>
				
				&lt;p class=&quot;MsoNormal&quot;&gt;In working more and more on our Digital Asset Management initiatives, I&apos;ve become more involved in working with &lt;a href=&quot;http://www.adobe.com/xmp&quot; target=&quot;_blank&quot;&gt;XMP&lt;/a&gt;.&amp;nbsp; Mostly as an experiment, I wanted to see if I could read and write this embedded metadata from and to a file.&amp;nbsp; The &lt;a href=&quot;http://www.adobe.com/devnet/xmp/sdk/eula.html&quot; target=&quot;_blank&quot;&gt;Adobe XMP Toolkit&lt;/a&gt; indicates how this can be done based on the structure of specific types of files.&amp;nbsp; It also indicates that packet scanning techniques can be used when file structure is unknown, however, is not encouraged.&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;I recognize it might not be the BEST way to read the XMP packet, however, all is fair in love and ColdFusion experimentation :)&amp;nbsp; It&apos;s important to note that this code looks only for the FIRST instance of the string &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;&quot;&gt;&amp;lt;x:xmpmeta&lt;/span&gt; and if there are multiple instances of XMP packets, subsequent instances are ignored.&amp;nbsp; Adobe also indicates that if there are multiple packets, there is no way to know which packet is the correct one.&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;Needless to say, using the code below, I was able to read and parse XMP packets from all the Adobe sample files included in their toolkit.&amp;nbsp; It may not be the end-all solution, and may not work for writing back to the file, but it&apos;s a start!&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;background: #DBDBDB&quot;&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cfparam&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;name=&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;&quot;&gt;&quot;URL.source&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;default=&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;&quot;&gt;&quot;xmp-asset.jpg&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cffile&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;action=&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;&quot;&gt;&quot;readbinary&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;file=&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;&quot;&gt;&quot;#ExpandPath(URL.source)#&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;variable=&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;&quot;&gt;&quot;data&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;&quot;&gt;&amp;lt;!--- encode the binary data to hex ---&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cfset&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; hex_data = &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: #000066;&quot;&gt;BinaryEncode&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;(data,&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;&quot;&gt;&quot;hex&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;&quot;&gt;&amp;lt;!--- string indicating beginning of packet &apos;&amp;lt;x:xmpmeta&apos; ---&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cfset&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; xmp_string_begin = &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;&quot;&gt;&quot;3C783A786D706D657461&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;&quot;&gt;&amp;lt;!--- string indicating end of packet &apos;&amp;lt;/x:xmpmeta&amp;gt;&apos; ---&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cfset&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; xmp_string_end = &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;&quot;&gt;&quot;3C2F783A786D706D6574613E&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;&quot;&gt;&amp;lt;!--- find the starting index in the hex string ---&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cfset&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; idx_start = &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: #000066;&quot;&gt;FindNoCase&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;(xmp_string_begin,hex_data) &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;&quot;&gt;&amp;lt;!--- find the ending index in the hex string ---&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cfset&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; idx_end = &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: #000066;&quot;&gt;FindNoCase&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;(xmp_string_end,hex_data,idx_start) + &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: #000066;&quot;&gt;Len&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;(xmp_string_end) &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;&quot;&gt;&amp;lt;!--- using the start and end indices, extract the xmp packet ---&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cfset&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; xmp_hex = &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: #000066;&quot;&gt;Mid&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;(hex_data,idx_start,&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: #000066;&quot;&gt;Evaluate&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;(idx_end-idx_start)) &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;&quot;&gt;&amp;lt;!--- convert the hex to readable characters ---&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cfset&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; xmp_string = &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: #000066;&quot;&gt;ToString&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: #000066;&quot;&gt;BinaryDecode&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;(xmp_hex,&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;&quot;&gt;&quot;hex&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;)) &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;&quot;&gt;&amp;lt;!--- parse the xml string to and xml structure ---&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cfset&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; xmp_xml = &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: #000066;&quot;&gt;XmlParse&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;(xmp_string) &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cfcontent&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;type=&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;&quot;&gt;&quot;text/xml&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;cfoutput&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;&quot;&gt;#xmp_string#&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;&quot;&gt;&amp;lt;/cfoutput&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Be sure to check out the &lt;a href=&quot;http://www.adobe.com/devnet/xmp/&quot; target=&quot;_blank&quot;&gt;Adobe XMP Developer Center&lt;/a&gt; for more information.&lt;/p&gt;
				
				</description>
						
				
				<category>XMP</category>				
				
				<category>Adobe</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 20 Feb 2009 12:29:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2009/2/20/Reading-Embedded-XMP-Packets-using-ColdFusion</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Wiimote Whiteboard Lab</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2009/1/24/Wiimote-Whiteboard-Lab</link>
				<description>
				
				&lt;p&gt;Having been very intrigued by the experiments of &lt;a href=&quot;http://www.cs.cmu.edu/~johnny/projects/wii/&quot; target=&quot;_blank&quot;&gt;Johnny Lee&lt;/a&gt; using the Nintendo &lt;a href=&quot;http://en.wikipedia.org/wiki/Wii_Remote&quot; target=&quot;_blank&quot;&gt;Wii remote&lt;/a&gt;, I decided to give one of them a try.&amp;nbsp; I decided the experiment that would be most useful to me was the interactive whiteboard. &lt;br /&gt;&lt;br /&gt;Following several instructions by different people online to build an infrared LED pen, I went to Radio Shack, spent about $10, and had a (somewhat) working version after about 5 hours worth of work.&amp;nbsp; Had I known what I was doing, it should have only taken me about an hour, if that.&lt;br /&gt;&lt;br /&gt;The first problems I ran into were due to a lack of understanding of some fundamental principles of electricity.&amp;nbsp; Initially, I was using a battery housing that holds 3 AAA batteries (thinking that much power was needed) end-to-end outputting 4.5 volts (1.5 volts each).&amp;nbsp; Each IR LED I used to complete the circuit ended up overloaded and burned out.&amp;nbsp; Finally, with some advice from my father with a background in electricity, I learned that keeping the positive and negative ends of the batteries separated (laying them side-by-side instead of end-to-end), I could increase the output without increasing the voltage.&amp;nbsp; Thereby powering the IR LED without burning it out.&lt;br /&gt;&lt;br /&gt;That hurdle overcome, I started discovering that sometimes the IR LED was getting power, and sometimes it wasn&apos;t.&amp;nbsp; Had I done some more research online, I could have saved myself a couple hours.&amp;nbsp; I finally learned that with LEDs, polarity matters.&amp;nbsp; In other words, the positive and negative charges had to be correctly paired with the tips of the LED.&amp;nbsp; So, the cathode tip of the LED must be matched up with the positive charge of the battery.&amp;nbsp; After discovering this, I learned that one AAA battery provided sufficient power for the LED, which made construction of my circuit much easier.&lt;br /&gt;&lt;br /&gt;Finally, the last major problem I had was reading.&amp;nbsp; Yes, reading the packaging on wire I bought to connect the components in the circuit.&amp;nbsp; Had I read the package, I would have seen that the wire I bought was covered in a protective coating.&amp;nbsp; So in order for it to conduct the electricity of the circuit, I had to scrape the coating off the tips to make a good contact with the battery and LED and other components.&lt;br /&gt;&lt;br /&gt;Back to one of my earlier statements; I had it (somewhat) working.&amp;nbsp; Was my IR LED pen able to &quot;transmit&quot; data to my Wiimote?&amp;nbsp; Yes.&amp;nbsp; Was it consistent?&amp;nbsp; Somewhat.&amp;nbsp; Was it as easy to use as a real whiteboard?&amp;nbsp; No.&amp;nbsp; It was quite difficult for me to find a position for my Wiimote where it could &quot;see&quot; the IR beam or reflection.&amp;nbsp; This led me to believe that either the IR LED I purchased wasn&apos;t providing sufficient light to be seen by the Wiimote or that something about the circuit I constructed wasn&apos;t optimal.&amp;nbsp; Either way, not being knowledgeable enough about the Wiimote&apos;s capabilities, the electrical circuit I was attempting to construct, or the properties and capabilities of the IR LED with which I was working, I just wasn&apos;t getting the expected results.&lt;br /&gt;&lt;br /&gt;I decided that for my experiment I was at least successful even if my construction was not optimal.&amp;nbsp; In the end I decided to purchase an inexpensive IR LED pen &lt;a href=&quot;http://penteractive.us/&quot; target=&quot;_blank&quot;&gt;online&lt;/a&gt; that used the same brand and model of IR LED as originally recommended by Johnny Lee (NOT available at my local Radio Shack).&amp;nbsp; It worked like a charm!&amp;nbsp; I also found that using the Wiimote with the IR LED pen worked the best with a projector instead of on a computer monitor.&lt;br /&gt;&lt;br /&gt;So, if you consider yourself anything of a hobbyist with some basic electrical knowledge, you should give this a shot yourself.&amp;nbsp; If you just want to see and use a virtual whiteboard with a Nintendo Wiimote and infrared LED pen, save yourself some time and frustration, and buy one online!&lt;/p&gt;
				
				</description>
						
				
				<category>Wii</category>				
				
				<pubDate>Sat, 24 Jan 2009 10:37:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2009/1/24/Wiimote-Whiteboard-Lab</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Ubuntu 8.10 and Microsoft Virtual PC 2007</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2008/12/15/Ubuntu-810-and-Microsoft-Virtual-PC-2007</link>
				<description>
				
				&lt;p&gt;After finally getting &lt;a href=&quot;http://www.cygwin.com/&quot; target=&quot;_blank&quot;&gt;Cygwin&lt;/a&gt; installed on my Windows XP Pro SP 2 laptop, I discovered how difficult it can be to get large open-source projects to correctly compile under Cygwin.&amp;nbsp; This was exteremely irritating for obvious reasons.&lt;/p&gt;
&lt;p&gt;So I decided to try and install &lt;a href=&quot;http://www.ubuntu.com/&quot; target=&quot;_blank&quot;&gt;Ubuntu&lt;/a&gt; 8.10 under &lt;a href=&quot;http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx&quot; target=&quot;_blank&quot;&gt;Microsoft Virtual PC&lt;/a&gt; 2007.&amp;nbsp; I had previously installed older versions of Ubuntu this way, but was having some trouble getting 8.10 installed.&amp;nbsp; After some searching, I found &lt;a href=&quot;http://arcanecode.wordpress.com/2008/11/10/installing-ubuntu-810-under-microsoft-virtual-pc-2007&quot; target=&quot;_blank&quot;&gt;this&lt;/a&gt; wonderful post and comment thread.&lt;/p&gt;
&lt;p&gt;The short story is, I had to add &lt;em&gt;&lt;strong&gt;vga=791 noreplace-paravirt&lt;/strong&gt;&lt;/em&gt; to the grub command line for the initial boot.&amp;nbsp; Then &lt;em&gt;&lt;strong&gt;noreplace-paravirt&lt;/strong&gt;&lt;/em&gt; to &lt;span style=&quot;text-decoration: underline;&quot;&gt;/boot/grub/menu.lst&lt;/span&gt; after installation and any subsequent updates that modify this file.&lt;/p&gt;
				
				</description>
						
				
				<category>Cygwin</category>				
				
				<category>Open Source</category>				
				
				<category>Ubuntu</category>				
				
				<pubDate>Mon, 15 Dec 2008 13:06:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2008/12/15/Ubuntu-810-and-Microsoft-Virtual-PC-2007</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Cygwin Setup Finally Working</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2008/12/2/Cygwin-Setup-Finally-Working</link>
				<description>
				
				&lt;p&gt;I had been trying to get my environment set up to play with &lt;a href=&quot;http://labs.adobe.com/technologies/alchemy/&quot; target=&quot;_blank&quot;&gt;Adobe Alchemy&lt;/a&gt;, but kept running into problems with my &lt;a href=&quot;http://cygwin.com/&quot; target=&quot;_blank&quot;&gt;Cygwin&lt;/a&gt; setup.&amp;nbsp; After several frustrating hours of installs, re-installs, uninstalls and some out-of-control Perl threads, I think I&apos;ve got it ready to go.&lt;/p&gt;
&lt;p&gt;The problems I was running into were largely due to two things: 1) The path of my home directory containing spaces (&quot;C:\Documents and Settings\...&quot;) and 2) my inexperience with Cygwin.&lt;/p&gt;
&lt;p&gt;In regards to #1 above, I think this was causing my home directory (/home/&lt;em&gt;username&lt;/em&gt;) to not get created properly.&amp;nbsp; That meant additional difficulties in customing my environment by editing my .bashrc file.&amp;nbsp; After the initial learning curve and interpreting the less than specific &lt;a href=&quot;http://labs.adobe.com/wiki/index.php/Alchemy:Documentation:Getting_Started#Windows&quot; target=&quot;_blank&quot;&gt;Adobe Getting Started on Windows&lt;/a&gt; instructions for Alchemy, I was able to get the sample library compiled and working correctly.&lt;/p&gt;
&lt;p&gt;I did run into a few other problems, but I was able to get through them.&amp;nbsp; I&apos;ll be doing a write up for getting started with Alchemy and Cygwin for Windows users with very little Unix experience when I get some more time.&amp;nbsp; Of course, now that I&apos;ve got Cygwin running, I&apos;m hoping to do try out something more significant than Hello World :)&lt;/p&gt;
				
				</description>
						
				
				<category>Adobe</category>				
				
				<category>Cygwin</category>				
				
				<category>Alchemy</category>				
				
				<pubDate>Tue, 02 Dec 2008 12:19:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2008/12/2/Cygwin-Setup-Finally-Working</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Adobe Alchemy: Initial Setup Impressions</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2008/11/30/Adobe-Alchemy-Initial-Setup-Impressions</link>
				<description>
				
				&lt;p&gt;My first thoughts on the &lt;a href=&quot;http://labs.adobe.com/technologies/alchemy/&quot; target=&quot;_blank&quot;&gt;Alchemy&lt;/a&gt; project were of doubt.&amp;nbsp; What would be the benefit of running C/C++ code on the AVM2?&amp;nbsp; It seemed&amp;nbsp;more like a novelty, like running old school NES games on the Wii.&amp;nbsp; The more I started to think about it (and get past my bad memories of Computer Science C/C++ classes in college), the more I started to realize just how powerful this could be.&amp;nbsp; There are so many open source C/C++ libraries for a wide variety of applications that, when paired with Flash, could have an amazing impact on Flash and AIR.&lt;/p&gt;
&lt;p&gt;I thought I would tinker with it a bit.&amp;nbsp; Of course, coming to the realization that Alchemy is still limited by the Flash player sandbox was a little disheartening, but I suppose understandable.&amp;nbsp;&amp;nbsp;I found the initial download and setup quite cumbersome.&amp;nbsp; One of my biggest roadblocks was working with &lt;a href=&quot;http://cygwin.com/&quot; target=&quot;_blank&quot;&gt;Cygwin&lt;/a&gt;.&amp;nbsp; I admit, that using Cygwin has its advantages, but configuration thus far has been a beast.&amp;nbsp; Additionally, the &lt;a href=&quot;http://labs.adobe.com/wiki/index.php/Alchemy:Documentation:Getting_Started#Windows&quot; target=&quot;_blank&quot;&gt;getting started&lt;/a&gt; section for Windows section left something to be desired in terms of details.&amp;nbsp; I&apos;m the first to admit I&apos;m no UNIX or Linux expert, but I&apos;d like to think I know my way around a bit.&lt;/p&gt;
&lt;p&gt;After a few hours of trying to just get my environment set up, something more important required my attention, so I have yet to get the provided examples working.&amp;nbsp; I hope to get back to this more in the next couple of weeks.&amp;nbsp; I&apos;ve got a few open source C++ libraries I&apos;d love to test out.&amp;nbsp; I&apos;m extremely intrigued, but until I get my environment set up, I&apos;m still skeptical.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.automatastudios.com/2008/11/21/understanding-adobe-alchemy/&quot; target=&quot;_blank&quot;&gt;Branden Hall&lt;/a&gt; has written a good overview of Alchemy.&lt;/p&gt;
				
				</description>
						
				
				<category>Flash</category>				
				
				<category>Adobe</category>				
				
				<category>Open Source</category>				
				
				<category>Cygwin</category>				
				
				<category>Alchemy</category>				
				
				<category>AIR</category>				
				
				<pubDate>Sun, 30 Nov 2008 16:02:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2008/11/30/Adobe-Alchemy-Initial-Setup-Impressions</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Mango Blog Skin: Lotus Flower</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2008/11/22/Mango-Blog-Skin-Lotus-Flower</link>
				<description>
				
				&lt;p&gt;I&apos;ve ported a few free css templates to &lt;a href=&quot;http://www.mangoblog.org/&quot; target=&quot;_blank&quot;&gt;Mango Blog&lt;/a&gt; skins, but this is the first one I&apos;m posting for public consumption :)&amp;nbsp; I used &lt;a href=&quot;http://www.freecsstemplates.org/preview/lotusflower&quot;&gt;lotus flower&lt;/a&gt; from &lt;a href=&quot;http://www.freecsstemplates.org/&quot; target=&quot;_blank&quot;&gt;Free CSS Templates&lt;/a&gt; for my personal blog/website (picked by my wife, I have to add) and just swapped out the header image.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;../../downloads/lotusflower.zip&quot;&gt;Download&lt;/a&gt; the skin and extract it to the &quot;skins&quot; directory in your Mango Blog installation.&amp;nbsp; Then just select it in the Mango Blog administration.&amp;nbsp; That&apos;s it!&lt;/p&gt;
				
				</description>
						
				
				<category>Mango Blog</category>				
				
				<category>CSS</category>				
				
				<pubDate>Sat, 22 Nov 2008 18:39:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2008/11/22/Mango-Blog-Skin-Lotus-Flower</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Adobe Media Orchestrator: Video Asset Management?</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2008/11/19/Adobe-Media-Orchestrator-Video-Asset-Management</link>
				<description>
				
				&lt;p&gt;One of my colleagues at &lt;a href=&quot;http://max.adobe.com/&quot; target=&quot;_blank&quot;&gt;Adobe MAX&lt;/a&gt; in San Francisco sent me a text message last night.&amp;nbsp; He was at the sneaks session and indicated that there was a preview of an Adobe product called Media Orchestrator.&amp;nbsp; This &lt;a href=&quot;http://www.adobe.com/products/air/&quot; target=&quot;_blank&quot;&gt;AIR&lt;/a&gt; application, in conjunction with existing products like &lt;a href=&quot;http://www.adobe.com/products/premiere/&quot; target=&quot;_blank&quot;&gt;Premiere&lt;/a&gt; and &lt;a href=&quot;http://www.adobe.com/products/livecycle/&quot; target=&quot;_blank&quot;&gt;LiveCycle&lt;/a&gt;, will facilitate video production workflow, from production to review, feedback and rights application.&lt;/p&gt;
&lt;p&gt;Considering that we have been spending most of our time lately at work trying to write a custom video asset management solution using Adobe products, this announcement is really bittersweet.&amp;nbsp; It&apos;s fantastic that Adobe is (or considering) releasing this as a product, however, it most likely won&apos;t be available any time soon and we need it right now.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;More information and pictures on &lt;a href=&quot;http://www.webkitchen.be/2008/11/19/live-blogging-max-2008-sneak-peak-session/&quot; target=&quot;_blank&quot;&gt;Serge Jespers&lt;/a&gt; and &lt;a href=&quot;http://www.ashorten.com/2008/11/19/final-live-blogging-session-from-max-sneak-peaks-session/&quot; target=&quot;_blank&quot;&gt;Andrew Shorten&lt;/a&gt;&apos;s blogs where they were live blogging the sneaks event.&lt;/p&gt;
&lt;p&gt;can it be?&lt;/p&gt;
				
				</description>
						
				
				<category>Adobe</category>				
				
				<category>Video</category>				
				
				<category>AIR</category>				
				
				<pubDate>Wed, 19 Nov 2008 10:02:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2008/11/19/Adobe-Media-Orchestrator-Video-Asset-Management</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Carbon Coder at the Core of Adobe Flash Media Encoding Server</title>
				<link>http://www.genuinejd.com/blog/index.cfm/2008/11/18/Carbon-Coder-at-the-core-of-Adobe-Flash-Media-Encoding-Server</link>
				<description>
				
				&lt;p&gt;Ever since September 10, I&apos;ve been quite excited about the &lt;a href=&quot;http://www.adobe.com/aboutadobe/pressroom/pressreleases/200809/091008AdobeFMES.html&quot; target=&quot;_blank&quot;&gt;announcment&lt;/a&gt; that Adobe was finally releasing an encoding server solution called &lt;a href=&quot;http://www.adobe.com/products/flashmediaencoding/&quot; target=&quot;_blank&quot;&gt;Flash Media Encoding Server&lt;/a&gt;.&amp;nbsp; I was able to secure a pre-release version through work to take it for a test drive.&lt;/p&gt;
&lt;p&gt;Initial results were great.&amp;nbsp; Of course, being a pre-release, there were several challenges.&amp;nbsp; The first being that the software required a USB drive for a USB key.&amp;nbsp; In a time when virtualization is sweeping the corporate world in an effort to reduce costs, the requirement for something as simple as a physical USB port was very irritating.&amp;nbsp; We overcame that with a hardware/software solution, not the most desirable (spending money just for trial software), but oh well.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The next challenage was the documentation, or rather, the lack thereof.&amp;nbsp; Yes, the basic steps for installing the software were included, as well as the basic steps for setting up watch folders.&amp;nbsp; One of the big features I was anxious to test, though, was the SDK.&amp;nbsp; Surprise, surprise.&amp;nbsp; No SDK documentation.&amp;nbsp; We&apos;re hoping to put FMES (or some transcoding agent) in the front of our video asset management workflow to generate proxies of video assets for review within out applications.&amp;nbsp; Most of our applications are homegrown and based on Adobe technologies (ColdFusion, Flash/Flex, AIR, etc).&amp;nbsp; So the ability to leverage a transcoding solution via SDK is a vital element.&lt;/p&gt;
&lt;p&gt;Aside from the lack of documenation with the pre-release trial, I did find that several of the source files I tried to run through FMES couldn&apos;t be encoded.&amp;nbsp; Ok so they were odd codecs (WMV3, muxed mpeg, etc), but still.&amp;nbsp; The error messages gave me little to go on besides the error message, &quot;There is a video decoding error.&quot;&amp;nbsp; Using some other transcoding tools, I was able to encode the problem files, however, so why couldn&apos;t FMES process them?&lt;/p&gt;
&lt;p&gt;Finally, my biggest surprise is that in testing FMES, I discovered that at its core, it&apos;s really a product by Rhozet called Carbon Coder.&amp;nbsp; After a little quick digging, I discovered &lt;a href=&quot;http://www.harmonicinc.com/ah_press_release_text.cfm?id=783&quot; target=&quot;_blank&quot;&gt;this press release&lt;/a&gt; indicating Adobe&apos;s intentions.&amp;nbsp; It seems to me that, basically, Adobe has taken Rhozet&apos;s product, swapped out the words &quot;Rhozet Carbon Coder&quot; with &quot;Adobe Flash Media Encoding Server&quot; and limited the outputs to only those that are compatible with Flash.&amp;nbsp; The licensing model is slightly different than Rhozet&apos;s, however, it is more or less the same product.&lt;/p&gt;
&lt;p&gt;At this point, I&apos;m trying to decide why we would want to go with FMES over Carbon Coder.&amp;nbsp; If we&apos;re going to spend several thousand dollars to a transcoding solution, why not spend a few more and not be limited to only Flash-enabled media outputs?&lt;/p&gt;
&lt;p&gt;Now that FMES is available for purchase, Adobe will have more documentation or white papers available that can make a good argument, in addition to not choking on certain input formats.&amp;nbsp; Granted, video transcoding experts can probably explain why some of these problems exist and how to solve or get around them, but for a product that seems as if it should be a turnkey solution from Adobe, I would have hoped my intermediate skills in working with video transcoding should be more than enough to work with FMES.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;More to follow in the coming weeks, I&apos;m sure...&lt;/p&gt;
				
				</description>
						
				
				<category>Adobe</category>				
				
				<category>Video</category>				
				
				<category>Flash Media Server</category>				
				
				<pubDate>Tue, 18 Nov 2008 11:59:00 -0500</pubDate>
				<guid>http://www.genuinejd.com/blog/index.cfm/2008/11/18/Carbon-Coder-at-the-core-of-Adobe-Flash-Media-Encoding-Server</guid>
				
			</item>
			
		 	
			</channel></rss>
