<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>SRAY</title>
	<link>http://sray.squidpower.com</link>
	<description>Just another SquidPower.com weblog</description>
	<pubDate>Wed, 13 Jan 2010 17:09:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Solution to Error Running mxmlc.exe with Windows 64bit JVM</title>
		<link>http://sray.squidpower.com/2010/01/13/solution-to-error-running-mxmlcexe-with-windows-64bit-jvm/</link>
		<comments>http://sray.squidpower.com/2010/01/13/solution-to-error-running-mxmlcexe-with-windows-64bit-jvm/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 17:09:50 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2010/01/13/solution-to-error-running-mxmlcexe-with-windows-64bit-jvm/</guid>
		<description><![CDATA[When attempting to run mxmlc.exe from the Flex 3 SDK:
Error loading: C:\Program Files\Java\jdk1.6.0_17\jre\bin\server\jvm.dll
To solve this error I created a new batch file in the FLEX3_HOME/bin directory and named it mxmlc64bit.bat with the following one line:
 &#8221;%JAVA_HOME%\bin\java.exe&#8221; -Xmx384m -Dsun.io.useCanonCaches=false -jar &#8220;%~dp0\..\lib\mxmlc.jar&#8221; +flexlib=&#8221;%~dp0\..\frameworks&#8221; %*
 This bascially executes java to load the mxmlc.jar directly similar to what the linux script does [...]]]></description>
			<content:encoded><![CDATA[<p>When attempting to run mxmlc.exe from the Flex 3 SDK:</p>
<blockquote><p>Error loading: C:\Program Files\Java\jdk1.6.0_17\jre\bin\server\jvm.dll</p></blockquote>
<p>To solve this error I created a new batch file in the FLEX3_HOME/bin directory and named it mxmlc64bit.bat with the following one line:</p>
<blockquote><p> &#8221;%JAVA_HOME%\bin\java.exe&#8221; -Xmx384m -Dsun.io.useCanonCaches=false -jar &#8220;%~dp0\..\lib\mxmlc.jar&#8221; +flexlib=&#8221;%~dp0\..\frameworks&#8221; %*</p></blockquote>
<p> This bascially executes java to load the mxmlc.jar directly similar to what the linux script does and I assume it is also what mxmlc.exe does.</p>
<p> Hope this helps. <img src='http://sray.squidpower.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Check out my google ads. <img src='http://sray.squidpower.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2010/01/13/solution-to-error-running-mxmlcexe-with-windows-64bit-jvm/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hauppauge HD PVR Streaming to Flash Player</title>
		<link>http://sray.squidpower.com/2009/04/08/hauppauge-hd-pvr-streaming-to-flash-player-on-windows/</link>
		<comments>http://sray.squidpower.com/2009/04/08/hauppauge-hd-pvr-streaming-to-flash-player-on-windows/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 15:23:36 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2009/04/08/hauppauge-hd-pvr-streaming-to-flash-player-on-windows/</guid>
		<description><![CDATA[This blog shows how to stream directly from the Hauppauage HD PVR H.264 Encoder to a Flash Player Client with no need to reencode the audio or video.  To accomplish this I have used a series of Windows DirectShow Filters to receive the stream from the HD PVR, send the stream out to the network [...]]]></description>
			<content:encoded><![CDATA[<p>This blog shows how to stream directly from the Hauppauage HD PVR H.264 Encoder to a Flash Player Client with no need to reencode the audio or video.  To accomplish this I have used a series of Windows DirectShow Filters to receive the stream from the HD PVR, send the stream out to the network using RTP/AVP.  And then Wowza Media Server does the rest to restream it to flash player.</p>
<p>What you will need:</p>
<p>- Hauppauge HD PVR<br />
- Elecard NWRenderer DirectShow Filter (Elecard Codec .NET SDK G4 or Streaming Plug-in)<br />
- Windows Graph Edit (Windows Driver Devlopment Kit)<br />
- Wowza Media Server</p>
<p>First, install the Hauppauage HD PVR and drivers and get a good video signal coming in to it.   Next, get a copy of the Windows Driver Development Kit and you only need to install the AV Stream Tools in order to get the graphedt.exe and related libraries.  ( &#8220;C:\WINDDK\3790.1830\tools\avstream\x86\graphedt.exe&#8221; )  Most of the instructions will be building a DirectShow Filter Graph using this tool.</p>
<p>Using Windows Graph Edit you can create a filter graph to expose the raw data from the HD PVR.  The raw data is an MPEG Transport Stream containing H.264 video and AAC audio.  In Graph Edit you need to add and connect in sequence the Hauppauge HD PVR Crossbar, Hauppauge HD PVR Capture Device, and Hauppauge PVR Encoder filters.  These are found under Graph &gt; Insert Filters &gt; WDM Streaming Crossbar Devices,  WDM Streaming Capture Devices, and WDM Streaming Encoder Devices respectivally.  Connect the crossbar device to the capture device and connect the capture device to the encoder.  You can right click on each of these to modify properties.  Especially usefully is the encoder properties page to set the H.264 and AAC settings.</p>
<p>You now have direct access to the MPEG Transport Stream (containing H.264 audio and AAC video).  You could use a Dump Filter to dump this directly to a file if you wanted to.  What we want to do is feed this into the Elecard NWRenderer and stream it out to the network.  You will need to install either the Elecard Codec .NET SDK G4 or the Elecard Streaming Pack.  Once you have installed these they should show up under Graph &gt; Insert Filters &gt; DirectShow Filters.  If for some reason you do not see these Elecard filters, you may need to register them in windows.  The filters are *.ax files in the install folder of the Elecard software.  ( &#8220;C:\Program Files\Elecard\Elecard Codec SDK G4\Bin&#8221; or &#8220;C:\Program Files\Common Files\Elecard&#8221; )  Pass each of the *.ax filenames as a parameter to regsvr32.exe.</p>
<p>Insert the Elecard NWRenderer filter.  Connect the output of the Hauppauge Encoder to the Input of the Elecard NWRenderer.  Click Play to run the filter graph.  Right click to view the properties of the NWRenderer.  Under Information Click the Save SDP message.  Save this file out.  You can open this file in VLC Media Player to test that it is really being sent out over the network.  We are finished using the Graph Edit program.  Leave the graph playing and streaming on the network.</p>
<p>Install Wowza Media Server with an MPEG-TS add-on license.  Make sure you request an MPEG-TS add-on license.  Without the MPEG-TS add-on this does not work in Wowza Media Server.  Copy the rtplive folder from &#8220;%WMSCONFIG_HOME%\examples\NativeRTPVideoStreaming\conf&#8221; to &#8220;%WMSCONFIG_HOME%\conf&#8221;.  Create an empty folder named  rtplive in &#8220;%WMSCONFIG_HOME%\applications&#8221;.  Copy the .sdp into &#8220;%WMSCONFIG_HOME%\content&#8221;. Start the Wowza service.</p>
<p>Now you can run &#8220;%WMSCONFIG_HOME%\examples\NativeRTPVideoStreaming\client\nativertp.html&#8221;.  Put the filename of the .sdp file as the stream name. You are now watching the video and audio being encoded from the HD PVR.  Wowza simply converts the container from mpeg transport stream to the flash compatible mp4 box.</p>
<p>More to come including screen shots &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2009/04/08/hauppauge-hd-pvr-streaming-to-flash-player-on-windows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Working udev rules for multiple pvrusb2 and hvr-1950 devices</title>
		<link>http://sray.squidpower.com/2009/03/03/working-udev-rules-for-multiple-pvrusb2-and-hvr-1950-devices/</link>
		<comments>http://sray.squidpower.com/2009/03/03/working-udev-rules-for-multiple-pvrusb2-and-hvr-1950-devices/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 23:01:30 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2009/03/03/working-udev-rules-for-multiple-pvrusb2-and-hvr-1950-devices/</guid>
		<description><![CDATA[I have 6 WinTV HVR-1950 Model Category 751xx usb devices attached to one MythBuntu box recording 6 composite audio/video feeds from 6 security cameras.
Whenever the machine reboots the usb devices are assigned their device filename in non-repeatable and not well defined order so that each time /dev/video0 will probably be a different device.
So I knew [...]]]></description>
			<content:encoded><![CDATA[<p>I have 6 WinTV HVR-1950 Model Category 751xx usb devices attached to one MythBuntu box recording 6 composite audio/video feeds from 6 security cameras.</p>
<p>Whenever the machine reboots the usb devices are assigned their device filename in non-repeatable and not well defined order so that each time /dev/video0 will probably be a different device.</p>
<p>So I knew that udev rules should solve the problem.  At present, there are no attributes defined for these devices that can be used in a udev rules, but the driver does create a lot of useful information in files under /sys/class/pvrusb2/.</p>
<p>I first tried using the rules and script found on this page: http://www.isely.net/pvrusb2/utils.html</p>
<p>But they did not work.  After several hours of troubleshooting and with some help, I finally found out the reason why: the /sys/class/pvrusb2/ folder and files are not yet available at the time that the udev rule is executing the program script.</p>
<p>To solve this problem, I&#8217;ve rewritten the script so that it will wait up to 15 seconds until these sys files are available, and then using the information, properly link each /dev/videoX device to a /dev/video_sn-XXXXXXX using the serial number of that device.</p>
<p>Then in MythTV I am able to use the /dev/video_sn-XXXXXXX filename which will be the exact same physical device every time.</p>
<p>I tried using the WAIT_FOR_SYSFS and WAIT_FOR keys in the rules file, but it also did not work for me.</p>
<p>If you find this information useful you might also find a useful ad on my site and click to read more about it.  <img src='http://sray.squidpower.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Here are the files that work for me:</p>
<p>/etc/udev/rules.d/99-hvr1950.rules<br />
<b><br />
<code><br />
KERNEL=="video[0-9]*", PROGRAM="/usr/bin/udev-hvr-1950.sh %m", SYMLINK+="video_%c", OWNER="mythtv", GROUP="mythtv"<br />
</code><br />
</b></p>
<p>/usr/bin/udev-hvr-1950.sh<br />
<b><br />
<code><br />
#!/bin/bash</code></p>
<p># author: Steve Gudmundson</p>
<p>pvrusb2=/sys/class/pvrusb2<br />
search=$pvrusb2/sn-*<br />
timeout=15</p>
<p># find the serial number for this device #<br />
count_seconds=0<br />
minor_num=-1<br />
until [ $count_seconds -gt $timeout ]<br />
do<br />
sleep 1<br />
count_seconds=`expr $count_seconds + 1`<br />
for file in $search<br />
do<br />
minor_num=`cat $file/v4l_minor_number`<br />
if [ $minor_num -eq $1 ]<br />
then<br />
serial_num=&#8221;${file//$pvrusb2\//}&#8221;<br />
echo $serial_num<br />
exit 0<br />
fi<br />
done<br />
done</p>
<p>echo unknown_$1<br />
exit 0<br />
</code><br />
</b></p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2009/03/03/working-udev-rules-for-multiple-pvrusb2-and-hvr-1950-devices/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hauppauge WinTV HVR-1950 on Linux MythBuntu MythTV</title>
		<link>http://sray.squidpower.com/2009/02/18/hauppauge-wintv-hvr-1950-on-linux-mythbuntu-mythtv-analog-digital-video-including-s-video-and-composite-inputs/</link>
		<comments>http://sray.squidpower.com/2009/02/18/hauppauge-wintv-hvr-1950-on-linux-mythbuntu-mythtv-analog-digital-video-including-s-video-and-composite-inputs/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 00:44:54 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2009/02/18/hauppauge-wintv-hvr-1950-on-linux-mythbuntu-mythtv-analog-digital-video-including-s-video-and-composite-inputs/</guid>
		<description><![CDATA[What I did to get analog tv tuner, composite, or s-video capture to work:

Fresh install of mythbuntu 9.04
Extract and install the firmware files for HVR-1950:

Download http://www.isely.net/downloads/fwextract.pl to ~/Desktop
Insert the CD that came with your HVR-1950 (contains windows drivers) [assume it mounted as /media/cdrom0]
cd ~/Desktop
chmod u+x fwextract.pl
./fwextract.pl /media/cdrom0/Drivers/
sudo copy *.fw /lib/firmware


Run mythtv-setup using sudo

sudo mythtv-setup
Capture Card [...]]]></description>
			<content:encoded><![CDATA[<p>What I did to get analog tv tuner, composite, or s-video capture to work:</p>
<ol>
<li>Fresh install of mythbuntu 9.04</li>
<li>Extract and install the firmware files for HVR-1950:
<ol>
<li>Download <a href="http://www.isely.net/downloads/fwextract.pl">http://www.isely.net/downloads/fwextract.pl</a> to ~/Desktop</li>
<li>Insert the CD that came with your HVR-1950 (contains windows drivers) [assume it mounted as /media/cdrom0]</li>
<li>cd ~/Desktop</li>
<li>chmod u+x fwextract.pl</li>
<li>./fwextract.pl /media/cdrom0/Drivers/</li>
<li>sudo copy *.fw /lib/firmware</li>
</ol>
</li>
<li>Run mythtv-setup using sudo
<ol>
<li>sudo mythtv-setup</li>
<li>Capture Card Type: IVTV MPEG-2 encoder card</li>
<li>Video device: /dev/video0</li>
<li>Probed info: WinTV HVR-1950 Model Category 7 [pvrusb2]</li>
</ol>
</li>
<li>Run mythtvfrontend</li>
<li>(if the video looks really bad in mythfrontend):
<ol>
<li>Utilities/Setup</li>
<li>Setup</li>
<li>TV Settings</li>
<li>Recording Profiles</li>
<li>MPEG-2 Encoders (PVR-x50, PVR-500)</li>
<li>for Live TV, Default, High Quality, Low Quality
<ol>
<li>Change Width to 720</li>
<li>Change Height to 480</li>
</ol>
</li>
</ol>
</li>
</ol>
<p>Notes:</p>
<ul>
<li>To use it for digital capture instead of analog I think you need to use the DVB DTV capture card type.</li>
<li>If you do not run mythtv-setup through sudo you will get an error message: &#8220;Probed info: Failed to open&#8221; and &#8220;Could not open &#8216;/dev/video0&#8242; to probe its inputs.&#8221;</li>
<li>If you do not extract and install the firmware files, then the HVR-1950 usb will not init.  You should get the following files extracted and copied: v4l-cx2341x-enc.fw, v4l-cx25840.fw, v4l-pvrusb2-29xxx-01.fw, v4l-pvrusb2-73xxx-01.fw</li>
<li>If you try to do this on MythBuntu 8.10 you will run into the deadlock problem described in <a href="http://www.isely.net/pvrusb2/history.html">http://www.isely.net/pvrusb2/history.html</a> and fixed in the <a name="pvrusb2-mci-20081019" title="pvrusb2-mci-20081019"></a>pvrusb2-mci-20081019 release.  (I did not try to recompile the pvrusb2 driver in 8.10 because I assume it is part of the kernel and it seemed like a lot of work.  If you do and it works, let me know how.)</li>
<li>My research shows that MythBuntu does not use the standalone pvrusb2 driver but uses the -in V4L version thus further complicating the compiling of an up-to-date version of pvrusb2.  I also could not figure out which packages to force upgrade in order to get the latest pvrusb2.</li>
<li>Some things I did that I don&#8217;t think helped fix the problems:
<ul>
<li>sudo apt-get update</li>
<li>sudo apt-get dist-upgrade</li>
<li>sudo apt-get autoremove</li>
<li>sudo rmmod pvrusb2</li>
<li>sudo modprobe pvrusb2</li>
</ul>
</li>
<li>If you find this information useful you might also find a useful ad on my site and click to read more about it.  <img src='http://sray.squidpower.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p>References:</p>
<ul>
<li><a href="http://www.mythbuntu.org/">http://www.mythbuntu.org/</a></li>
<li><a href="http://www.isely.net/pvrusb2/pvrusb2.html">http://www.isely.net/pvrusb2/pvrusb2.html</a></li>
<li><a href="http://ubuntuforums.org/showthread.php?p=6732655#post6732655">http://ubuntuforums.org/showthread.php?p=6732655#post6732655</a></li>
<li><a href="http://www.linuxtv.org/wiki/index.php/ATSC_USB_Devices">http://www.linuxtv.org/wiki/index.php/ATSC_USB_Devices</a></li>
</ul>
<p>dmesg output should be something like this when the device is connected properly:<br />
<code><br />
[ 3014.636441] usbcore: registered new interface driver pvrusb2<br />
[ 3014.636450] pvrusb2: V4L in-tree version:Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner<br />
[ 3014.636456] pvrusb2: Debug mask is 31 (0x1f)<br />
[ 3015.636130] usb 5-6: firmware: requesting v4l-pvrusb2-73xxx-01.fw<br />
[ 3015.647622] pvrusb2: Device microcontroller firmware (re)loaded; it should now reset and reconnect.<br />
[ 3015.679396] usb 5-6: USB disconnect, address 5<br />
[ 3015.679836] pvrusb2: Device being rendered inoperable<br />
[ 3017.432020] usb 5-6: new high speed USB device using ehci_hcd and address 6<br />
[ 3017.573844] usb 5-6: configuration #1 chosen from 1 choice<br />
[ 3017.670711] cx25840' 0-0044: cx25843-24 found @ 0x88 (pvrusb2_a)<br />
[ 3017.703925] tuner' 0-0042: chip found @ 0x84 (pvrusb2_a)<br />
[ 3017.727963] tveeprom 0-00a2: Hauppauge model 75111, rev C3E9, serial# 5371008<br />
[ 3017.727968] tveeprom 0-00a2: MAC address is 00-0D-FE-51-F4-80<br />
[ 3017.727972] tveeprom 0-00a2: tuner model is Philips 18271_8295 (idx 149, type 54)<br />
[ 3017.727976] tveeprom 0-00a2: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)<br />
[ 3017.727979] tveeprom 0-00a2: audio processor is CX25843 (idx 37)<br />
[ 3017.727982] tveeprom 0-00a2: decoder processor is CX25843 (idx 30)<br />
[ 3017.727985] tveeprom 0-00a2: has radio, has IR receiver, has IR transmitter<br />
[ 3017.727992] pvrusb2: Supported video standard(s) reported available in hardware: PAL-M/N/Nc;NTSC-M/Mj/Mk;ATSC-8VSB/16VSB<br />
[ 3017.727998] pvrusb2: Mapping standards mask=0x300b700 (PAL-M/N/Nc;NTSC-M/Mj/Mk;ATSC-8VSB/16VSB)<br />
[ 3017.728016] pvrusb2: Setting up 6 unique standard(s)<br />
[ 3017.728023] pvrusb2: Set up standard idx=0 name=PAL-M<br />
[ 3017.728026] pvrusb2: Set up standard idx=1 name=PAL-N<br />
[ 3017.728029] pvrusb2: Set up standard idx=2 name=PAL-Nc<br />
[ 3017.728033] pvrusb2: Set up standard idx=3 name=NTSC-M<br />
[ 3017.728036] pvrusb2: Set up standard idx=4 name=NTSC-Mj<br />
[ 3017.728039] pvrusb2: Set up standard idx=5 name=NTSC-Mk<br />
[ 3017.728042] pvrusb2: Initial video standard (determined by device type): NTSC-M<br />
[ 3017.731049] pvrusb2: Device initialization completed successfully.<br />
[ 3017.731131] pvrusb2: registered device video0 [mpeg]<br />
[ 3017.731135] DVB: registering new adapter (pvrusb2-dvb)<br />
[ 3017.757981] cx25840' 0-0044: firmware: requesting v4l-cx25840.fw<br />
[ 3019.986050] cx25840' 0-0044: loaded v4l-cx25840.fw firmware (16382 bytes)<br />
[ 3020.168547] tda829x 0-0042: setting tuner address to 60<br />
[ 3020.192529] tda18271 0-0060: creating new instance<br />
[ 3020.228545] TDA18271HD/C1 detected @ 0-0060<br />
[ 3021.424529] tda829x 0-0042: type set to tda8295+18271<br />
[ 3024.742477] cx25840' 0-0044: Video signal: not present<br />
[ 3024.742482] cx25840' 0-0044: Detected format: NTSC-M<br />
[ 3024.742485] cx25840' 0-0044: Specified standard: NTSC-M<br />
[ 3024.742487] cx25840' 0-0044: Specified video input: Composite 7<br />
[ 3024.742490] cx25840' 0-0044: Specified audioclock freq: 48000 Hz<br />
[ 3024.749349] cx25840' 0-0044: Detected audio mode: mono<br />
[ 3024.749353] cx25840' 0-0044: Detected audio standard: no detected audio standard<br />
[ 3024.749356] cx25840' 0-0044: Audio muted: no<br />
[ 3024.749359] cx25840' 0-0044: Audio microcontroller: detecting<br />
[ 3024.749362] cx25840' 0-0044: Configured audio standard: automatic detection<br />
[ 3024.749365] cx25840' 0-0044: Configured audio system: BTSC<br />
[ 3024.749367] cx25840' 0-0044: Specified audio input: Tuner (In8)<br />
[ 3024.749370] cx25840' 0-0044: Preferred audio mode: stereo<br />
[ 3024.808916] cx25840' 0-0044: firmware: requesting v4l-cx25840.fw<br />
[ 3027.024318] cx25840' 0-0044: loaded v4l-cx25840.fw firmware (16382 bytes)<br />
[ 3029.267787] usb 5-6: firmware: requesting v4l-cx2341x-enc.fw<br />
[ 3029.508914] cx25840' 0-0044: 0x0000 is not a valid video input!<br />
[ 3031.787749] DVB: registering adapter 0 frontend 0 (Samsung S5H1411 QAM/8VSB Frontend)...<br />
[ 3031.790123] tda829x 0-0042: type set to tda8295<br />
[ 3031.828013] tda18271 0-0060: attaching existing instance<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2009/02/18/hauppauge-wintv-hvr-1950-on-linux-mythbuntu-mythtv-analog-digital-video-including-s-video-and-composite-inputs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SPEEDTEST.NET MINI with JSP</title>
		<link>http://sray.squidpower.com/2009/02/13/speedtestnet-mini-with-jsp/</link>
		<comments>http://sray.squidpower.com/2009/02/13/speedtestnet-mini-with-jsp/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 21:32:58 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[JBoss]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2009/02/13/speedtestnet-mini-with-jsp/</guid>
		<description><![CDATA[You can download a neat flash broadband speed test from http://www.speedtest.net/mini.php and put it on your own web site.
It comes with server side scripts in PHP, ASP.NET, and ASP for the upload half of the test.  But what if you want it to run on your java web container server such as tomcat or jboss?
Well, I [...]]]></description>
			<content:encoded><![CDATA[<p>You can download a neat flash broadband speed test from <a href="http://www.speedtest.net/mini.php">http://www.speedtest.net/mini.php</a> and put it on your own web site.</p>
<p>It comes with server side scripts in PHP, ASP.NET, and ASP for the upload half of the test.  But what if you want it to run on your java web container server such as tomcat or jboss?</p>
<p>Well, I have the solution. </p>
<p>First, for the index.html file simply copy the index-asp.html and change the upload_extension line to read jsp instead of asp:</p>
<p><code>so.addVariable("upload_extension", "jsp");</code></p>
<p>Next, you will need to create an upload.jsp file alongside the upload.php and upload.asp files in the speedtest folder.</p>
<p>Here is the code for upload.jsp:</p>
<p><code></code><code>&lt;%<br />
long size = 0;</code><code>// add length of request header strings<br />
String name = "";<br />
for(java.util.Enumeration e = request.getHeaderNames(); e.hasMoreElements();){<br />
name = (String)e.nextElement();<br />
String value = "";<br />
for(java.util.Enumeration f = request.getHeaders(name); f.hasMoreElements();){<br />
value = (String)f.nextElement();<br />
size += name.length() + value.length() + 3;<br />
//out.print(name+"="+value+"\n");<br />
}<br />
}</code><code>/*<br />
// add length of request parameter strings<br />
name = "";<br />
for(java.util.Enumeration e = request.getParameterNames(); e.hasMoreElements();){<br />
name = (String)e.nextElement();<br />
String value = "";<br />
String[] values = request.getParameterValues(name);<br />
for(int i = 0; i 0);<br />
}<br />
*/</p>
<p>// add the length of the input stream of uploaded bytes<br />
java.io.InputStream is = request.getInputStream();<br />
if ( is != null ) {<br />
long skip = 0;<br />
do {<br />
skip = is.skip(Long.MAX_VALUE);<br />
size += skip;<br />
} while (skip &gt; 0);<br />
}</p>
<p>response.reset();<br />
response.resetBuffer();<br />
response.setContentType("text/html");<br />
out.print("size="+size);<br />
%&gt;</p>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2009/02/13/speedtestnet-mini-with-jsp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using Boolean AND &#38;&#38; Operator in Flex MXML Data Binding</title>
		<link>http://sray.squidpower.com/2008/12/17/using-boolean-and-operator-in-flex-mxml-data-binding/</link>
		<comments>http://sray.squidpower.com/2008/12/17/using-boolean-and-operator-in-flex-mxml-data-binding/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 18:31:07 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2008/12/17/using-boolean-and-operator-in-flex-mxml-data-binding/</guid>
		<description><![CDATA[As you probably know because you are searching for a solution to this error, the following Flex MXML code will not work:
&#60;HBox visible="{((booleanValue1) &#38;&#38; (booleanValue2))}" &#62;
You will get this error message during compile:
Error: The entity name must immediately follow the &#8216;&#38;&#8217; in the entity reference.
Instead you will need to use html escape codes for these [...]]]></description>
			<content:encoded><![CDATA[<p>As you probably know because you are searching for a solution to this error, the following Flex MXML code will not work:</p>
<p><code>&lt;HBox visible="{((booleanValue1) &amp;&amp; (booleanValue2))}" &gt;</code></p>
<p>You will get this error message during compile:</p>
<blockquote><p>Error: The entity name must immediately follow the &#8216;&amp;&#8217; in the entity reference.</p></blockquote>
<p>Instead you will need to use html escape codes for these as follows:</p>
<p><code>&lt;HBox visible="{((booleanValue1) &amp;amp;&amp;amp; (booleanValue2))}" &gt;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2008/12/17/using-boolean-and-operator-in-flex-mxml-data-binding/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Outlook 2007 VBA Run A Script Rule Stopped Working</title>
		<link>http://sray.squidpower.com/2008/08/13/outlook-2007-vba-run-a-script-rule-stopped-working/</link>
		<comments>http://sray.squidpower.com/2008/08/13/outlook-2007-vba-run-a-script-rule-stopped-working/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 21:19:54 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2008/08/13/outlook-2007-vba-run-a-script-rule-stopped-working/</guid>
		<description><![CDATA[I have been banging my head against the wall on this one.  I wrote an Outlook 2007 rule that was set to &#8220;run a script&#8221;.  I used the Outlook integrated Visual Basic Editor (Alt+F11) to create one that would parse an email, pull out an html link for an xml file and save this url. [...]]]></description>
			<content:encoded><![CDATA[<p>I have been banging my head against the wall on this one.  I wrote an Outlook 2007 rule that was set to &#8220;run a script&#8221;.  I used the Outlook integrated Visual Basic Editor (Alt+F11) to create one that would parse an email, pull out an html link for an xml file and save this url.  But, after my machine crashed and burned one night, it just stopped working.  It was broken.  I tried everything: rebooting the machine, exiting and reopening outlook, rewriting the script from scratch, removing and re-adding the rule.  Finally I tried one last thing that actually worked:<br />
<blockquote>
<ol>
<li>Copy the script code to a notepad file. </li>
<li>Exit Outlook.  </li>
<li>Go to %USERPROFILE%\Application Data\Microsoft\Outlook</li>
<li>Delete the file named VbaProject.OTM.  </li>
<li>Start Outlook</li>
<li>Open up the integrated Macros VB Editor </li>
<li>Paste the Rule Procedures from the Notpad file</li>
<li>Re-edit the script</li>
<li>Viola! It works again.</li>
</ol>
</blockquote>
<p>What a headache!!! Hope this helps.  Check out the cool google ads!!  ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2008/08/13/outlook-2007-vba-run-a-script-rule-stopped-working/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to Use Apache mod_proxy to Work Around crossdomain.xml Constraints</title>
		<link>http://sray.squidpower.com/2007/12/20/how-to-use-apache-mod_proxy-to-work-around-crossdomainxml-constraints/</link>
		<comments>http://sray.squidpower.com/2007/12/20/how-to-use-apache-mod_proxy-to-work-around-crossdomainxml-constraints/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 17:43:46 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2007/12/20/how-to-use-apache-mod_proxy-to-work-around-crossdomainxml-constraints/</guid>
		<description><![CDATA[I was recently given the task to load xml from a Flex app hosted on our web site.  Easy task I thought, especially with the mx.rpc.http.mxml.HTTPService flex object. 
Until I ran into this error:

faultCode: Channel.Security.Error
faultString: &#8216;Security error accessing url&#8217;
faultDetail: &#8216;Destination: DefaultHTTP&#8217;
The problem was that the flex swf was to run on our web site, but the xml data was [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently given the task to load xml from a Flex app hosted on our web site.  Easy task I thought, especially with the <a href="http://livedocs.adobe.com/flex/2/langref/mx/rpc/http/mxml/HTTPService.html">mx.rpc.http.mxml.HTTPService</a> flex object. </p>
<p>Until I ran into this error:<br />
<code></code><code></code><code></code><code></p>
<blockquote><p>faultCode: Channel.Security.Error<br />
faultString: &#8216;Security error accessing url&#8217;<br />
faultDetail: &#8216;Destination: DefaultHTTP&#8217;</p></blockquote>
<p>The problem was that the flex swf was to run on our web site, but the xml data was provided by another site.  ( e.g.  ourWebSite.com/flex.swf &#8212;&gt; anotherWebSite.com/data.xml )</p>
<p>Specifically the problem is the security built into flash player.  It will not allow flex.swf hosted on ourWebSite.com to use the xml data from anotherWebSite.com (unless anotherWebSite.com publishes a crossdomain.xml file in the root of their web server granting access to ourWebSite.com).  So, the company providing us the data doesn&#8217;t currently have anyone consuming the xml data from a flash swf loaded on a web site.  (It seems we are always pushing the boundaries of new technologies.)  Anyways, it could take forever to request they add a relevant crossdomain.xml to their site that grants us access to their data and get have the file put on their web server.  And, they may not want the headache of keeping track of all the thousands of clients that have a legitimate right to the xml data in a crossdomain.xml file.</p>
<p></code>So, I decided to circumnavigate (work around or hack a solution)  to the problem.  Basically what I did was use the Apache mod_proxy module to pass requests for the xml through ourWebSite.com.   (e.g. ourWebSite.com/data.xml &#8212; mod_proxy &#8211;&gt; anotherWebSite.com/data.xml)  So, to the flash player, it looks like the data.xml is actually hosted on ourWebSite.com.  In fact, the url for the xml is now ourWebSite.com/data.xml instead of anotherWebSite.com/data.xml.  So it meets all of the flash player crossdomain security restrictions.</p>
<p>Here is a step-by-step guide of how to get around the crossdomain.xml restriction security constraints:</p>
<ol>
<li>Install Apache 2. (I used apache_2.2.6-win32-x86-openssl-0.9.8e.msi)</li>
<li>Edit httpd.conf and configure mod_proxy to pass requests through it<br />
<code></p>
<blockquote><p>LoadModule proxy_module modules/mod_proxy.so<br />
LoadModule proxy_http_module modules/mod_proxy_http.so<br />
ProxyRequests Off<br />
ProxyPass /data.xml http://anotherWebSite.com/data.xml<br />
ProxyPassReverse /data.xml http://anotherWebSite.com/data.xml</p></blockquote>
<p></code></li>
<li>As needed, add an appropriate crossdomain.xml file to the root of this server (if the flex.swf and the proxy-passed data.xml are on the same apache server, you don&#8217;t even need this). </li>
<li>Restart/start Apache 2.</li>
</ol>
<p>One more caveat I had to work around is enabling Apache 2 to ProxyPass requests to a secure httpS url.  (the true url for our data.xml was httpS://anotherWebSite.com/data.xml)  So, I was getting the following error message in Apache&#8217;s error.log file:<br />
<code></code><code></p>
<blockquote><p>proxy: No protocol handler was valid for the URL https<br />
If you are using a DSO version of mod_proxy, make sure the proxy submodules<br />
are included in the configuration using LoadModule.</p></blockquote>
<p></code>The problem was that I did not have the openssl version of Apache 2.  You have to have an SSL version of Apache 2 in order to ProxyPass requests to a secure httpS url:</p>
<ol>
<li>Make sure you have installed the openssl version of Apache 2 (I used apache_2.2.6-win32-x86-openssl-0.9.8e.msi)</li>
<li>Edit http.conf and configure for SSL Proxy support<br />
<code></p>
<blockquote><p>LoadModule ssl_module modules/mod_ssl.so<br />
SSLProxyEngine On</p></blockquote>
<p></code></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2007/12/20/how-to-use-apache-mod_proxy-to-work-around-crossdomainxml-constraints/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Flex messaging requires display-name entry in web.xml</title>
		<link>http://sray.squidpower.com/2007/10/11/flex-messaging-requires-display-name-entry-in-webxml/</link>
		<comments>http://sray.squidpower.com/2007/10/11/flex-messaging-requires-display-name-entry-in-webxml/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 14:05:15 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2007/10/11/flex-messaging-requires-display-name-entry-in-webxml/</guid>
		<description><![CDATA[Flex messaging (Flex Data Services, FDS, FDS2, now called LiveCycle) requires that the display-name entry be in the web.xml (for sure in JBoss, I assume in other Java servers).Â  Otherwise you will get errors similar to these:

08:04:06,018 ERROR Servlet threw load() exception
java.lang.NullPointerException
        at flex.management.BaseControl.getObjectName(BaseControl.java:287)
     [...]]]></description>
			<content:encoded><![CDATA[<p><code></code>Flex messaging (Flex Data Services, FDS, FDS2, now called LiveCycle) requires that the display-name entry be in the web.xml (for sure in JBoss, I assume in other Java servers).Â  Otherwise you will get errors similar to these:</p>
<p><code><br />
08:04:06,018 ERROR Servlet threw load() exception<br />
java.lang.NullPointerException<br />
        at flex.management.BaseControl.getObjectName(BaseControl.java:287)<br />
        at flex.management.BaseControl.register(BaseControl.java:148)<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2007/10/11/flex-messaging-requires-display-name-entry-in-webxml/feed/</wfw:commentRss>
		</item>
		<item>
		<title>NetStream Errors if no AsyncErrorEvent handler specified</title>
		<link>http://sray.squidpower.com/2007/10/09/netstream-errors-if-no-ayncerrorevent-handler-specified/</link>
		<comments>http://sray.squidpower.com/2007/10/09/netstream-errors-if-no-ayncerrorevent-handler-specified/#comments</comments>
		<pubDate>Tue, 09 Oct 2007 20:15:27 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2007/10/09/netstream-errors-if-no-ayncerrorevent-handler-specified/</guid>
		<description><![CDATA[This one kind of bugs me.Â  If you don&#8217;tÂ create an event handler on the flex/flash NetStream object for the AsyncErrorEvent and you call the NetStream.play function you will get the following errors. Well, you will see it in the flash debug player.
ERRORS:
Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095: flash.net.NetStream was unable to invoke callback onMetaData. error=ReferenceError: [...]]]></description>
			<content:encoded><![CDATA[<p>This one kind of bugs me.Â  If you don&#8217;tÂ create an event handler on the flex/flash NetStream object for the AsyncErrorEvent and you call the NetStream.play function you will get the following errors. Well, you will see it in the flash debug player.</p>
<p>ERRORS:<br />
<code>Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095: flash.net.NetStream was unable to invoke callback onMetaData. error=ReferenceError: Error #1069: Property onMetaData not found on flash.net.NetStream and there is no default value.</code><code>Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095: flash.net.NetStream was unable to invoke callback onPlayStatus. error=ReferenceError: Error #1069: Property onPlayStatus not found on flash.net.NetStream and there is no default value.</code><code> </code>To solve this add the following code:<br />
<code>var ns: NetStream = new NetStream(nch.nc);<br />
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, ayncErrorHandler);</code><code>public function ayncErrorHandler(event: AsyncErrorEvent): void {<br />
// ignore for now<br />
}</code><code>Similar problem with the NetConnection object and the NetStatusEvent:<br />
<code><br />
addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler)<br />
</code></p>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2007/10/09/netstream-errors-if-no-ayncerrorevent-handler-specified/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Flash Media Server from Flex 2</title>
		<link>http://sray.squidpower.com/2007/10/09/flash-media-server-from-flex-2/</link>
		<comments>http://sray.squidpower.com/2007/10/09/flash-media-server-from-flex-2/#comments</comments>
		<pubDate>Tue, 09 Oct 2007 19:42:02 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2007/10/09/flash-media-server-from-flex-2/</guid>
		<description><![CDATA[Flex2 with FMS2
OK, this one caused me to waste a bit of time so here I&#8217;m going to describe the problem in detail.Â  Hopefully it will save someone else the trouble I had.Â  Basically Flex 2 defaults to AMF3 and Flash Media Server 2 will only support AMF0.
On the FMS server side the application was [...]]]></description>
			<content:encoded><![CDATA[<p>Flex2 with FMS2</p>
<p>OK, this one caused me to waste a bit of time so here I&#8217;m going to describe the problem in detail.Â  Hopefully it will save someone else the trouble I had.Â  Basically Flex 2 defaults to AMF3 and Flash Media Server 2 will only support AMF0.</p>
<p>On the FMS server side the application was simply an empty folder. On the client side I had the following actionscript:<br />
<code><br />
var nc NetConnection = new NetConnection();<br />
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);</code><code>private function netStatusHandler(event: NetStatusEvent): void<br />
{<br />
trace(event.info.code + " for " +event.currentTarget.uri);<br />
}</code><code>When I would build this code into a flex2 app, I always got NetConnection.Connect.Failed. If I compiled the code through Flash CS3 it worked. I eventually used the flex debugger to inspect the event object in the netStatusHandler function. event.info.description was "objectEncoding error" and event.currentTarget.objectEncoding was 3! So I found that the following line of code easily solved all my headache:<br />
<code><br />
nc.objectEncoding = flash.net.ObjectEncoding.AMF0;<br />
</code></p>
<p></code>You could also set the default for all instances of NetConnection and SharedObject as follows:<br />
<code><br />
NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;<br />
SharedObject.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;<br />
</code><br />
But I decided not to do this since my app also connect to a java backend through AMF.</p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2007/10/09/flash-media-server-from-flex-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Flex 2 Java Session Log Out</title>
		<link>http://sray.squidpower.com/2007/08/28/flex-2-java-session-log-out/</link>
		<comments>http://sray.squidpower.com/2007/08/28/flex-2-java-session-log-out/#comments</comments>
		<pubDate>Tue, 28 Aug 2007 20:54:20 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2007/08/28/flex-2-java-session-log-out/</guid>
		<description><![CDATA[Here is how to log out a user (invalidate their java web session) assuming you have a Flex 2 front end with a Java back end. Also assuming you are using the standard J2EE JAAS authenticationÂ api to protect your web app this will log them out of the software. Create a back end java function [...]]]></description>
			<content:encoded><![CDATA[<p>Here is how to log out a user (invalidate their java web session) assuming you have a Flex 2 front end with a Java back end. Also assuming you are using the standard J2EE JAAS authenticationÂ api to protect your web app this will log them out of the software. Create a back end java function with the following code in it:</p>
<blockquote><p>flex.messaging.FlexContext.getHttpRequest().getSession().invalidate();</p></blockquote>
<p>Call this from the flex front end through a web service or through flash remoting.<br />
Once you have invalidated the java session you should redirect the user back to the login page or to some other start page for your site. If you do not then the flex app will fail when trying to retreive data through the flex data services servlet to your java web app. So, place the following ActionScript code in the onResult handler of the flex method that called the service:</p>
<blockquote><p>flash.net.navigateToURL(&#8221;.&#8221;)</p></blockquote>
<p>Be careful when naming the method on the java back end. For example, you cannot use the method name &#8220;logout&#8221; because mx.rpc.AbstractService already has a method named logout() and you would be calling the Adobe class&#8217;s function rather than your java function. I have an associate that named his method logout() and it took us almost 2 hours to find out what was actually happening. We found that the mx.rpc.remoting.RemoteObject&#8217;s logout() method was being called rather than the one we wrote. And this is the error message we kept getting:</p>
<blockquote><p>13:54:28,843 INFO [STDOUT:152] [Flex] [ERROR] Error handling message: flex.messaging.security.SecurityException: External login command required. Please check your security configuration.<br />
incomingMessage: Flex Message (flex.messaging.messages.CommandMessage)<br />
operation = logout<br />
messageRefType = flex.messaging.messages.AuthenticationMessage<br />
clientId = 89793734-5F1D-626C-22C6-3FFBE22775BC<br />
correlationId =<br />
destination =<br />
messageId = 3AC1A57B-A8AE-D338-4C9D-B3306BB03966<br />
timestamp = 1188417268687<br />
timeToLive = 0<br />
body = {}<br />
errorReply: Flex Message (flex.messaging.messages.ErrorMessage)<br />
clientId = null<br />
correlationId = 3AC1A57B-A8AE-D338-4C9D-B3306BB03966<br />
destination =<br />
messageId = 897938B1-3B0E-8BFF-B43E-8096767736F8<br />
timestamp = 1188417268843<br />
timeToLive = 0<br />
body = null<br />
code = Server.Authorization<br />
message = External login command required. Please check your security configuration.<br />
details = null<br />
rootCause = null<br />
body = null<br />
extendedData = null</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2007/08/28/flex-2-java-session-log-out/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Upgrading the Internet Explorer Active X Controls in Delphi 5</title>
		<link>http://sray.squidpower.com/2006/10/11/upgrading-the-internet-explorer-active-x-controls-in-delphi-5/</link>
		<comments>http://sray.squidpower.com/2006/10/11/upgrading-the-internet-explorer-active-x-controls-in-delphi-5/#comments</comments>
		<pubDate>Wed, 11 Oct 2006 17:46:46 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2006/10/11/upgrading-the-internet-explorer-active-x-controls-in-delphi-5/</guid>
		<description><![CDATA[Component &#62; Install Packages&#8230;
&#8220;Internet Explorer Controls&#8221;
Remove
Component &#62; Import ActiveX Control
&#8220;Microsoft Ineternet Controls (Version 1.1)&#8221;
]]></description>
			<content:encoded><![CDATA[<p>Component &gt; Install Packages&#8230;<br />
&#8220;Internet Explorer Controls&#8221;<br />
Remove</p>
<p>Component &gt; Import ActiveX Control<br />
&#8220;Microsoft Ineternet Controls (Version 1.1)&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2006/10/11/upgrading-the-internet-explorer-active-x-controls-in-delphi-5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>XPath Issues with JBoss 4.0.3 SP1</title>
		<link>http://sray.squidpower.com/2006/08/22/xpath-issues-with-jboss-403-sp1/</link>
		<comments>http://sray.squidpower.com/2006/08/22/xpath-issues-with-jboss-403-sp1/#comments</comments>
		<pubDate>Tue, 22 Aug 2006 14:35:53 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[JBoss]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2006/08/22/xpath-issues-with-jboss-403-sp1/</guid>
		<description><![CDATA[I recently ran across this error message when running Flex Data Services 2 inside JBoss 4.0.3 SP1:
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/samples].[MessageBrokerServlet]:145]
Allocate exception for servlet MessageBrokerServlet
java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/dom with the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFctory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom
The problem is with JBoss 4.0.3 SP1 and is [...]]]></description>
			<content:encoded><![CDATA[<p>I recently ran across this error message when running Flex Data Services 2 inside JBoss 4.0.3 SP1:</p>
<blockquote><p>ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/samples].[MessageBrokerServlet]:145]<br />
Allocate exception for servlet MessageBrokerServlet<br />
java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/dom with the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFctory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom</p></blockquote>
<p>The problem is with JBoss 4.0.3 SP1 and is documented several places on the web:</p>
<ul>
<li><a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=403UpgradeIssues">JBoss&#8217;s Wiki 403 Upgrade Issues</a></li>
<li><a href="http://www.adobe.com/support/documentation/en/flex/2/install.html#jboss">Adobe&#8217;s Flex2 Install</a></li>
<li><a href="http://weblogs.macromedia.com/dharfleet/archives/2006/07/installing_flex.cfm">Adobe Web Logs - Daniel Harfleet</a></li>
</ul>
<p>Basically the solution is to download the 2.7.0 version of the xalan jars from apache and copy xalan.jar, xercesImpl.jar, and xml-apis.jar into the jboss deploy folder before deploying any flex data services 2 applications.Â  Below is the link to apache&#8217;s xalan download sites where you can either download xalan-j_2_7_0-bin.zip or xalan-j_2_7_0-bin-2jars.zip.</p>
<ul>
<li><a href="http://www.apache.org/dyn/closer.cgi/xml/xalan-j">http://www.apache.org/dyn/closer.cgi/xml/xalan-j</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2006/08/22/xpath-issues-with-jboss-403-sp1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ActionScript Package Name Case Sensitvity</title>
		<link>http://sray.squidpower.com/2006/08/21/actionscript-package-name-case-sensitvity/</link>
		<comments>http://sray.squidpower.com/2006/08/21/actionscript-package-name-case-sensitvity/#comments</comments>
		<pubDate>Mon, 21 Aug 2006 20:42:59 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2006/08/21/actionscript-package-name-case-sensitvity/</guid>
		<description><![CDATA[I checked out some mxml / action scriptÂ code from ourÂ CVS repositoryÂ todayÂ and recieved an error when trying to compile it:
Â Error: Type was not found or was not a compile-time constant: &#60;ActionScript Class Name&#62;
It seemed from the error message that someone must have 1) forgotten to add an import in action scriptÂ or 2) hadÂ messed up with the [...]]]></description>
			<content:encoded><![CDATA[<p>I checked out some mxml / action scriptÂ code from ourÂ CVS repositoryÂ todayÂ and recieved an error when trying to compile it:</p>
<blockquote><p>Â Error: Type was not found or was not a compile-time constant: &lt;ActionScript Class Name&gt;</p></blockquote>
<p>It seemed from the error message that someone must have 1) forgotten to add an import in action scriptÂ or 2) hadÂ messed up with the xml namespace attribute in the mxml file or 3) maybe they forgot to add the actionscript file to cvs.Â  After double checking each of these possibilities,Â I found that none of them was the problem.Â  Actually I was getting this same error message for several different actionscript classes.Â  So then I started asking the developers who wrote the code why I couldn&#8217;t compile it, they simplyÂ said it does compile just fine on their machines.Â  Yet, it still didn&#8217;t work on my computer.Â  After stepping through the imports and xml namespaces and showing one of the developers that the actionscript source code&#8217;s fileÂ was indeed on my computer, he noticed that one of the folders in the path to the fileÂ had an incorrect upper case letter in it.Â  I had checked this code out from cvs and for some reason cvs had created one ofÂ the folders with an upper case letter which was not in the package name.Â </p>
<p>Here is an example of the problem:</p>
<p>Action script class&#8217;s package name: <font size="2"></p>
<blockquote><p>package com.squidpower.education.assessmenttools.model</p></blockquote>
<p>Path to this action script file on my computer:</p>
<blockquote><p>com/squidpower/education/assessmentTools/model</p></blockquote>
<p>Notice the capital &#8216;T&#8217; in one of the folders compared to the package name.Â  Our linux cvs serverÂ is case sensitive in folderÂ namesÂ and my windows xp machine is not.Â  I assume that somehow the other developers had renamed the folder on their machinesÂ to the all lower case name after having added it to cvs with the folder name with the upper case letter.Â  To solve the problem for future developers on this project I renamed the folder on the linux cvs server to the correct all lower case name.Â  See my related topic <a target="_blank" href="http://sray.squidpower.com/2001/08/22/renaming-folders-in-cvs/" title="Renaming folders in CVS">Renaming folders in CVS</a>.</p>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2006/08/21/actionscript-package-name-case-sensitvity/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to Access HttpRequest from Flex Data Services 2</title>
		<link>http://sray.squidpower.com/2006/08/17/how-to-access-httprequest-from-flex-data-services-2/</link>
		<comments>http://sray.squidpower.com/2006/08/17/how-to-access-httprequest-from-flex-data-services-2/#comments</comments>
		<pubDate>Thu, 17 Aug 2006 20:20:05 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2006/08/17/how-to-access-httprequest-from-flex-data-services-2/</guid>
		<description><![CDATA[Sometimes in a flex app that is deployed as part of a java web app you will need to know who is the currently logged in user.Â  To do this in Flex 1.5 you could use the flashGateway.Gateway class.Â  In Flex 2.0 this is done using the flex.messaging.FlexContext class (part of the flex-messaging.jar file).Â  Use [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes in a flex app that is deployed as part of a java web app you will need to know who is the currently logged in user.Â  To do this in Flex 1.5 you could use the flashGateway.Gateway class.Â  In Flex 2.0 this is done using the flex.messaging.FlexContext class (part of the flex-messaging.jar file).Â  Use the appropriate class in java code to get access to the HttpServletRequest object and thus get to the current user.Â  This java code would then be exposed to flex as either a web service or a remote object.Â </p>
<p>Example Java Remote Method for Flex 2.0:</p>
<blockquote><p>Â public String getCurrentUserName() {<br />
Â Â return flex.messaging.FlexContext.getHttpRequest().getUserPrincipal().getName();<br />
Â }</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2006/08/17/how-to-access-httprequest-from-flex-data-services-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Maven Build for Flex Applications</title>
		<link>http://sray.squidpower.com/2006/08/16/maven-build-for-flex-applications/</link>
		<comments>http://sray.squidpower.com/2006/08/16/maven-build-for-flex-applications/#comments</comments>
		<pubDate>Wed, 16 Aug 2006 16:33:51 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2006/08/16/maven-build-for-flex-applications/</guid>
		<description><![CDATA[First see related blog Directory Structure for Integrated Flex and Java Web Applications.Â  This blog shows how easily one can build such project using maven with sample maven.xml, project.xml, project.properties files.Â  The samples are for maven version 1.0.2 and not version 2.x.Â Â Â Â Â Â Â Â Â Â Â  Â 
&#60;to be continued&#62;
NOTE: You will get an error in maven on the call [...]]]></description>
			<content:encoded><![CDATA[<p>First see related blog <a target="_blank" href="http://sray.squidpower.com/2006/08/11/directory-structure-for-integrated-flex-and-java-web-applications/" title="Directory Structure for Integrated Flex and Java Web Applications">Directory Structure for Integrated Flex and Java Web Applications</a>.Â  This blog shows how easily one can build such project using maven with sample maven.xml, project.xml, project.properties files.Â  The samples are for maven version 1.0.2 and not version 2.x.Â Â Â Â Â Â Â Â Â Â Â  Â </p>
<p>&lt;to be continued&gt;</p>
<p>NOTE: You will get an error in maven on the call to the mxml compiler if the path name to an mxml file contains spaces.</p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2006/08/16/maven-build-for-flex-applications/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Integrating Flex and Java in an Eclipse Web App Project</title>
		<link>http://sray.squidpower.com/2006/08/15/integrating-flex-and-java-in-an-eclipse-web-app-project/</link>
		<comments>http://sray.squidpower.com/2006/08/15/integrating-flex-and-java-in-an-eclipse-web-app-project/#comments</comments>
		<pubDate>Tue, 15 Aug 2006 15:50:40 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2006/08/16/integrating-flex-and-java-in-an-eclipse-web-app-project/</guid>
		<description><![CDATA[Requirements
1.Â Eclipse Web Tools Platform (WTP) from http://www.eclipse.org/webtools/, specifically the Web Standard Tools (WST) is used in this tutorial.
2.Â Flex 2 Builder Eclipse Plug-In from http://www.adobe.com/products/flex/flexbuilder/
Create the Eclipse Web App Project
1.Â Create a new project as â€œWeb &#62; Dynamic Web Projectâ€.
2.Â Give it a descriptive project name.
3.Â Uncheck â€œUse defaultâ€ and set â€œDirectoryâ€ to the root directory where the project [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Requirements</strong></p>
<blockquote><p>1.Â Eclipse Web Tools Platform (WTP) from <a href="http://www.eclipse.org/webtools/">http://www.eclipse.org/webtools/</a>, specifically the Web Standard Tools (WST) is used in this tutorial.<br />
2.Â Flex 2 Builder Eclipse Plug-In from <a href="http://www.adobe.com/products/flex/flexbuilder/">http://www.adobe.com/products/flex/flexbuilder/</a></p></blockquote>
<p><strong>Create the Eclipse Web App Project</strong></p>
<blockquote><p>1.Â Create a new project as â€œWeb &gt; Dynamic Web Projectâ€.<br />
2.Â Give it a descriptive project name.<br />
3.Â Uncheck â€œUse defaultâ€ and set â€œDirectoryâ€ to the root directory where the project files are kept. (See related blog <a target="_blank" href="http://sray.squidpower.com/2006/08/11/directory-structure-for-integrated-flex-and-java-web-applications/" title="Directory Structure for Integrated Flex and Java Web Applications">Directory Structure for Integrated Flex and Java Web Applications</a>.)<br />
4.Â Click â€œNextâ€.<br />
5.Â On â€œProject Facetsâ€ screen click â€œNextâ€.<br />
6.Â On â€œWeb Moduleâ€ screen set â€œContext Rootâ€.<br />
7.Â Set â€œContent Directoryâ€ to the root location of web files and WEB-INF folder.<br />
8.Â Set â€œJava Source Directoryâ€ to the root location of web related java source (e.g. struts actions).<br />
9.Â Click â€œFinishâ€<br />
10.Â See blog <a target="_blank" href="http://sray.squidpower.com/2006/08/08/maven-build-with-eclipse/" title="Maven Build with Eclipse">Maven Build with Eclipse</a>Â for optional steps.</p></blockquote>
<p><strong>Add Flex Project Nature</strong></p>
<blockquote><p>1.Â Right click newly created project.<br />
2.Â Select â€œFlex Project Natureâ€ &gt; â€œAdd Flex Project Natureâ€<br />
3.Â Open the â€œFlex Developmentâ€ perspective (Window &gt; Open Perspective)<br />
4.Â Open project properties (Right click project and select â€œPropertiesâ€).<br />
5.Â Select â€œFlex Build Pathâ€.<br />
6.Â Set â€œMain source folderâ€ to the root directory where mxml and action script files are.<br />
7.Â Optionally set the â€œOutput folderâ€ to â€œ.output\flex2â€ (see blog <a target="_blank" href="http://sray.squidpower.com/2006/08/08/maven-build-with-eclipse/" title="Maven Build with Eclipse">Maven Build with Eclipse</a> and <a target="_blank" href="http://sray.squidpower.com/2006/08/11/directory-structure-for-integrated-flex-and-java-web-applications/" title="Directory Structure for Integrated Flex and Java Web Applications">Directory Structure for Integrated Flex and Java Web Applications</a>).<br />
8.Â Select â€œFlex Applicationsâ€.<br />
9.Â Add all flex applications (root level mxml files, those that contain the Application root tag).<br />
10.Â Click â€œSet as Defaultâ€ for one of the applications.<br />
11.Â Remove auto created flex applications that you donâ€™t need.<br />
12.Â Unless compiling mxml on server, open project properties &gt; â€œFlex Compilerâ€ and uncheck â€œGenerate HTML wrapper fileâ€ as this creates a possibly unneeded html-templates folder<br />
13.Â See blog on <a target="_blank" href="http://sray.squidpower.com/2006/08/08/maven-build-with-eclipse/" title="Maven Build with Eclipse">Maven Build with Eclipse</a> for optional steps.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2006/08/15/integrating-flex-and-java-in-an-eclipse-web-app-project/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Directory Structure for Integrated Flex and Java Web Applications</title>
		<link>http://sray.squidpower.com/2006/08/11/directory-structure-for-integrated-flex-and-java-web-applications/</link>
		<comments>http://sray.squidpower.com/2006/08/11/directory-structure-for-integrated-flex-and-java-web-applications/#comments</comments>
		<pubDate>Fri, 11 Aug 2006 16:01:58 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Architecture]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2006/08/16/directory-structure-for-integrated-flex-and-java-web-applications/</guid>
		<description><![CDATA[This blog describes a proposed directory structure for web applications that contain a mix of flex applications, java presentation layer code, and java integration layer code.Â  From this structure you could easily build projects using ant or maven (preferred).Â 
]]></description>
			<content:encoded><![CDATA[<p>This blog describes a proposed directory structure for web applications that contain a mix of flex applications, java presentation layer code, and java integration layer code.Â  From this structure you could easily build projects using ant or maven (preferred).Â </p>
<p> <a href="http://sray.squidpower.com/2006/08/11/directory-structure-for-integrated-flex-and-java-web-applications/#more-8" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2006/08/11/directory-structure-for-integrated-flex-and-java-web-applications/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FDS 2 and Flex Builder 2</title>
		<link>http://sray.squidpower.com/2006/08/10/fds-2-and-flex-builder-2/</link>
		<comments>http://sray.squidpower.com/2006/08/10/fds-2-and-flex-builder-2/#comments</comments>
		<pubDate>Thu, 10 Aug 2006 16:30:28 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2006/08/16/fds-2-and-flex-builder-2/</guid>
		<description><![CDATA[I have found that Flex Builder 2 does not properly recognize any flex data services 2 mx components because it does not include the fds2.swc file by default in its install and thus cannot use the FDS2 controls.Â  To fix this problem, simply copy fds2.swc from &#60;fds2 install folder&#62;\flex_sdk_2\frameworks\libs to &#60;flex builder 2 plug-in install [...]]]></description>
			<content:encoded><![CDATA[<p>I have found that Flex Builder 2 does not properly recognize any flex data services 2 mx components because it does not include the fds2.swc file by default in its install and thus cannot use the FDS2 controls.Â  To fix this problem, simply copy fds2.swc from &lt;fds2 install folder&gt;\flex_sdk_2\frameworks\libs to &lt;flex builder 2 plug-in install folder&gt;\Flex SDK 2\frameworks\libs.Â  Then you will also need to add this swc to the list of swc&#8217;s in flex builder 2 project properties under &#8220;Flex Build Path&#8221; &gt; &#8220;Library Path&#8221;.</p>
<p>The symptoms of this problem are that it will not recoginize any of the dataservice mx controls in flex builder and you will see errors such as &#8220;Could not resolve &lt;mx:DataService&gt; to a component implementation.&#8221;Â </p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2006/08/10/fds-2-and-flex-builder-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Quick and Easy POJO Web Services with JBossWS</title>
		<link>http://sray.squidpower.com/2006/08/09/quick-and-easy-pojo-web-services-with-jbossws/</link>
		<comments>http://sray.squidpower.com/2006/08/09/quick-and-easy-pojo-web-services-with-jbossws/#comments</comments>
		<pubDate>Wed, 09 Aug 2006 18:13:56 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[JBoss]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.squidpower.com/?p=6</guid>
		<description><![CDATA[Here is a step-by-stepÂ tutorial explaining the quickest and easiest way to expose a plain old java object (POJO) as a web service.Â  This example uses jboss&#8217;s new web services stack (JBossWS-1.0.2.GA).Â  With this method you can quickly convert any java object into a web service.Â  For example, you could expose data access objects to a [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a step-by-stepÂ tutorial explaining the quickest and easiest way to expose a plain old java object (POJO) as a web service.Â  This example uses jboss&#8217;s new web services stack (JBossWS-1.0.2.GA).Â  With this method you can quickly convert any java object into a web service.Â  For example, you could expose data access objects to a front-side client such as flex.Â Â Best of all, noÂ coding and extremely little configurationÂ is needed to make the conversion from POJO to web service!</p>
<p> <a href="http://sray.squidpower.com/2006/08/09/quick-and-easy-pojo-web-services-with-jbossws/#more-6" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2006/08/09/quick-and-easy-pojo-web-services-with-jbossws/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Maven Build with Eclipse</title>
		<link>http://sray.squidpower.com/2006/08/08/maven-build-with-eclipse/</link>
		<comments>http://sray.squidpower.com/2006/08/08/maven-build-with-eclipse/#comments</comments>
		<pubDate>Tue, 08 Aug 2006 16:28:50 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2006/08/16/maven-build-with-eclipse/</guid>
		<description><![CDATA[I have found that the best way to run maven from inside eclipse is to create only one external tool named â€œMavenâ€ and use the project_loc variable to specify the working directory in which maven will run.Â 
Here is a step-by-step guide:
1.Â Run &#62; External Tools &#62; External Toolsâ€¦
2.Â Right click on â€œProgramâ€ and select â€œNewâ€
3.Â For â€œNameâ€, type [...]]]></description>
			<content:encoded><![CDATA[<p>I have found that the best way to run maven from inside eclipse is to create only one external tool named â€œMavenâ€ and use the project_loc variable to specify the working directory in which maven will run.Â <br />
Here is a step-by-step guide:</p>
<blockquote><p>1.Â Run &gt; External Tools &gt; External Toolsâ€¦<br />
2.Â Right click on â€œProgramâ€ and select â€œNewâ€<br />
3.Â For â€œNameâ€, type â€œMavenâ€.<br />
4.Â For â€œLocationâ€, click â€œBrowse File Systemâ€¦â€ and find the maven.bat file<br />
5.Â For â€œWorking Directoryâ€, click â€œVariablesâ€ and select â€œproject_locâ€.<br />
6.Â Now you can run Maven by simply clicking the external tools button and it will build the project you are currently working on using maven.</p></blockquote>
<p>Also, maven will create and delete the target folders as needed.Â  Eclipse also needs a place to put files that it builds.Â  I suggest that all of the eclipse built files be put in a folder named â€œ.outputâ€ in the root of the project folder.Â <br />
For example:</p>
<blockquote><p>1.Â Set â€œFlex Build Pathâ€ &gt; â€œOutput Folderâ€ to â€œ.output/flex2â€<br />
2.Â Set â€œJava Build Pathâ€ &gt; â€œOutput Folderâ€ to â€œ&lt;eclipse project name&gt;/.output/java/classesâ€.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2006/08/08/maven-build-with-eclipse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Maven versus Ant comparison</title>
		<link>http://sray.squidpower.com/2006/08/07/maven-versus-ant/</link>
		<comments>http://sray.squidpower.com/2006/08/07/maven-versus-ant/#comments</comments>
		<pubDate>Mon, 07 Aug 2006 16:39:57 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[Architecture]]></category>

		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2006/08/16/maven-versus-ant/</guid>
		<description><![CDATA[Here are the short and concise reasons why maven is a better choice than ant for project builds:

Maven can run any ant scripts you need, so maven can do any thing ant does.
Maven does not need to be explicitly told to compile java files or build a war or ear file, so there is less [...]]]></description>
			<content:encoded><![CDATA[<p>Here are the short and concise reasons why maven is a better choice than ant for project builds:</p>
<ul>
<li class="MsoNormal">Maven can run any ant scripts you need, so maven can do any thing ant does.</li>
<li class="MsoNormal">Maven does not need to be explicitly told to compile java files or build a war or ear file, so there is less xml code to write to get the build up and running.</li>
<li class="MsoNormal">Maven has integrated plug-ins already written for unit testing and reporting and for maintaining a project status web site with all kinds of useful project management reports.</li>
<li class="MsoNormal">See <a href="http://maven.apache.org/">http://maven.apache.org</a> for more information</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2006/08/07/maven-versus-ant/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Renaming Folders in CVS</title>
		<link>http://sray.squidpower.com/2001/08/22/renaming-folders-in-cvs/</link>
		<comments>http://sray.squidpower.com/2001/08/22/renaming-folders-in-cvs/#comments</comments>
		<pubDate>Wed, 22 Aug 2001 18:09:57 +0000</pubDate>
		<dc:creator>Steve Gudmundson</dc:creator>
		
		<category><![CDATA[CVS]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://sray.squidpower.com/2001/08/22/renaming-folders-in-cvs/</guid>
		<description><![CDATA[When renaming a folder in CVS, you will need to perform the following steps:

Rename the folder on the CVS server
On every client that already has it checked out, change the folder name and modify the

CVS/Entries fileÂ at the same level as the renamed folder
every CVS/Repositories file below the renamed folder



What a pain! Yet another reason to [...]]]></description>
			<content:encoded><![CDATA[<p>When renaming a folder in CVS, you will need to perform the following steps:</p>
<ul>
<li>Rename the folder on the CVS server</li>
<li>On every client that already has it checked out, change the folder name and modify the
<ul>
<li>CVS/Entries fileÂ at the same level as the renamed folder</li>
<li>every CVS/Repositories file below the renamed folder</li>
</ul>
</li>
</ul>
<p>What a pain! Yet another reason to switch to subversion.</p>
]]></content:encoded>
			<wfw:commentRss>http://sray.squidpower.com/2001/08/22/renaming-folders-in-cvs/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
