<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sam Alston&#039;s Blog</title>
	<atom:link href="http://kennelbound.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kennelbound.com</link>
	<description></description>
	<lastBuildDate>Tue, 19 Feb 2013 02:10:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
		<item>
		<title>Sam&#8217;s Famous Secret Guacamole</title>
		<link>http://kennelbound.com/sams-famous-secret-guacamole/</link>
		<comments>http://kennelbound.com/sams-famous-secret-guacamole/#comments</comments>
		<pubDate>Tue, 19 Feb 2013 02:10:27 +0000</pubDate>
		<dc:creator>Sam Alston</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[avocado guacamole]]></category>

		<guid isPermaLink="false">http://kennelbound.com/?p=181</guid>
		<description><![CDATA[While a famous secret might sound like an oxymoron, it isn’t necessarily so.&#160; For example, Area 51.&#160; It’s quite famous, nobody actually knows what’s going on in there.&#160; Ok, so my guacamole may not house secret alien technology that the U.S. will one day use to conquer the world, it’s still pretty good. For those [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2141.jpg"><img title="IMG_2141" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin-left: 0px; border-left: 0px; display: inline; padding-right: 0px; margin-right: 0px" border="0" alt="IMG_2141" src="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2141_thumb.jpg" width="304" height="229" /></a></p>
<p>While a famous secret might sound like an oxymoron, it isn’t necessarily so.&#160; For example, Area 51.&#160; It’s quite famous, nobody actually knows what’s going on in there.&#160; Ok, so my guacamole may not house secret alien technology that the U.S. will one day use to conquer the world, it’s still pretty good.</p>
<p>For those that know me, this is not the “Sam’s Guacamole” that everyone raves about.&#160; I’ll save that recipe for later.&#160; This is a modification to a guacamole that I had at a latino restaurant on the east coast.&#160; </p>
<p><strong>Ingredients:</strong></p>
<ul>
<li>1 Medium to Large avocado (slightly larger than the volume of a baseball)</li>
<li>1/2 cup of white onion</li>
<li>1/2 cup of fresh roma tomatoes</li>
<li>1/2 cup of fresh cilantro</li>
<li>1/8 cup of lime juice</li>
<li>salt</li>
<li>ground black pepper</li>
</ul>
<p><strong>Directions</strong>:</p>
<ol>
<li>Dice the tomatoes, onions, and cilantro very finely (should be about 1/8 square inch in area for all three)     <br /> <br />
<table cellspacing="0" cellpadding="2" width="800" border="0">
<tbody>
<tr>
<td valign="top" width="266"><a href="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2132.jpg"><img title="IMG_2132" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_2132" src="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2132_thumb.jpg" width="244" height="184" /></a></td>
<td valign="top" width="266"><a href="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2133.jpg"><img title="IMG_2133" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_2133" src="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2133_thumb.jpg" width="244" height="184" /></a></td>
<td valign="top" width="266"><a href="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2134.jpg"><img title="IMG_2134" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_2134" src="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2134_thumb.jpg" width="244" height="184" /></a></td>
</tr>
</tbody>
</table>
<p></li>
<li> Roughly dice the avocado.&#160; The easiest way that I’ve found to do this is as follows (I apologize for the quality of the photos, my son was taking them):</li>
<ol>
<li>Cut the avocado in half by slicing into it long way, and rotating the avocado around slicing until you get back to where you started.<a href="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2135.jpg"><img title="IMG_2135" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_2135" src="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2135_thumb.jpg" width="244" height="184" /></a>        </li>
<li>Slice a grid into the avocado, pressing the knife in hard enough to scrape the peel on the far side, but not hard enough to penetrate it.       <br /><a href="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2136.jpg"><img title="IMG_2136" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_2136" src="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2136_thumb.jpg" width="244" height="184" /></a>        </li>
<li>Turn the avocado inside out, and simple scrape the chunks into the bowl.       <br /><a href="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2139.jpg"><img title="IMG_2139" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_2139" src="http://kennelbound.com/wp-content/uploads/2013/02/IMG_2139_thumb.jpg" width="244" height="184" /></a></li>
</ol>
<li>Put the tomatoes, onions, cilantro, and avocado into a bowl.&#160; Using a fork, press the avocado to squish it and mix together.&#160; Salt, pepper, and add lime juice as you mix (I know, black pepper sounds odd in this, but it really adds something.)</li>
</ol>
<p>This is a really easy recipe, and tastes delicious.&#160; Maybe someday I’ll share the secret secret guacamole recipe, but for now enjoy this simple (and frankly, probably better) alternative!   </p>
]]></content:encoded>
			<wfw:commentRss>http://kennelbound.com/sams-famous-secret-guacamole/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Write Support for NTFS with Mac OSX Mountain Lion</title>
		<link>http://kennelbound.com/write-support-for-ntfs-with-mac-osx-mountain-lion/</link>
		<comments>http://kennelbound.com/write-support-for-ntfs-with-mac-osx-mountain-lion/#comments</comments>
		<pubDate>Thu, 14 Feb 2013 20:06:55 +0000</pubDate>
		<dc:creator>Sam Alston</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://kennelbound.com/?p=160</guid>
		<description><![CDATA[I&#8217;m putting the steps for this at the top, with the fun story about how I found this below.   Here are the steps that I took: Download and install MacFUSE: http://goo.gl/VdnPW Download and install NTFS-3G: http://goo.gl/HH0Pm Download and install the NTFS-3G timeout errors fix: http://goo.gl/nH5Or Download and install OSXFUSE (be sure to check the Emulate MacFUSE checkbox): http://goo.gl/AP8kL [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m putting the steps for this at the top, with the fun story about how I found this below.   Here are the steps that I took:</p>
<ol>
<li>Download and install MacFUSE: <a title="https://www.tuxera.com/mac/macfuse/MacFUSE-Tuxera-2.2.dmg" href="http://goo.gl/VdnPW" target="_blank">http://goo.gl/VdnPW</a></li>
<li>Download and install NTFS-3G: <a title="http://downloads.sourceforge.net/project/catacombae/NTFS-3G%20for%20Mac%20OS%20X/2010.10.2/ntfs-3g-2010.10.2-macosx.dmg?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fcatacombae%2Ffiles%2FNTFS-3G%2520for%2520Mac%2520OS%2520X%2F2010.10.2%2Fntfs-3g-2010.10.2-macosx.dmg%2Fdownload%3Fuse_mirror%3Diweb&amp;ts=1345263864&amp;use_mirror=iweb" href="http://goo.gl/HH0Pm" target="_blank">http://goo.gl/HH0Pm</a></li>
<li>Download and install the NTFS-3G timeout errors fix: <a title="http://cloud.github.com/downloads/bfleischer/fuse_wait/fuse_wait.pkg" href="http://goo.gl/nH5Or" target="_blank">http://goo.gl/nH5Or</a></li>
<li>Download and install OSXFUSE (be sure to check the Emulate MacFUSE checkbox): <a title="https://github.com/downloads/osxfuse/osxfuse/OSXFUSE-2.5.4.dmg" href="http://goo.gl/AP8kL" target="_blank">http://goo.gl/AP8kL</a></li>
<li>Open Disk Utility</li>
<li>Right click on the appropriate drive (BOOTCAMP), select Mount</li>
</ol>
<div>At that point you should have it mounted, and can now read/write the drive!</div>
<div></div>
<div>Ok, so now the story of how I came across it (with the appropriate nods to my forebearers.)</div>
<p>I&#8217;m a huge fan of Apple desktops and laptops.  They look great, they&#8217;re nice and speedy, and they tend to be well-built and durable.  However, OSX still doesn&#8217;t have the gaming scene that Windows does.  This is changing as Apple&#8217;s share is growing, but plenty of games are Windows only (while the inverse is rarely true.)</p>
<p>I&#8217;m running bootcamp (with Windows 8) and Mountain Lion (10.8.2).  But there are times where I need access to my Windows share while in OSX (and vice versa.)  OSX can read the NTFS volumes for Bootcamp on my machine, but can&#8217;t write to it by default.  So, after some headaches and troubleshooting I came across this blog entry by Thomas Verbeek: <a href="http://www.thomasverbeek.com/blog/?p=318" target="_blank">http://www.thomasverbeek.com/blog/?p=318</a></p>
<p>Fantastic!  It looked like exactly what I needed.  Except when I reboot the machine as directed at the end, I received an error message:</p>
<blockquote><p>dyld:library not loaded: / use/local/lib/libfuse2.bylib<br />
referenced from : / use/local/bin/ntfs-3g<br />
reason:image not found</p></blockquote>
<p>After some research, I found this article: <a href="http://forums.macrumors.com/showthread.php?t=1368295" target="_blank">http://forums.macrumors.com/showthread.php?t=1368295</a>, which pretty succinctly described my problem.  To resolve, I installed OSXFuse on top, checked the box to emulate MacFUSE (and uninstall it) and BAM!  Able to mount my BOOTCAMP volume in read/write mode.</p>
<p>Hopefully this helps anyone in the same situation.</p>
]]></content:encoded>
			<wfw:commentRss>http://kennelbound.com/write-support-for-ntfs-with-mac-osx-mountain-lion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So long story short: I&#8217;m an accidental vegetarian</title>
		<link>http://kennelbound.com/so-long-story-short-im-an-accidental-vegetarian/</link>
		<comments>http://kennelbound.com/so-long-story-short-im-an-accidental-vegetarian/#comments</comments>
		<pubDate>Wed, 08 Aug 2012 07:38:43 +0000</pubDate>
		<dc:creator>Sam Alston</dc:creator>
				<category><![CDATA[Food]]></category>

		<guid isPermaLink="false">http://kennelbound.com/?p=157</guid>
		<description><![CDATA[So an interesting thing happened a little over a week ago. As many of you know, I am a strong proponent of having a knowledge of where your food comes from. In particular, I believe that we (as omnivores) need to understand where the meat we eat comes from. That it once was alive, and [...]]]></description>
			<content:encoded><![CDATA[<p>So an interesting thing happened a little over a week ago.</p>
<p>As many of you know, I am a strong proponent of having a knowledge of where your food comes from. In particular, I believe that we (as omnivores) need to understand where the meat we eat comes from. That it once was alive, and now it is not.  That for us to have a hamburger, and animal that was living is no longer living.</p>
<p>Don&#8217;t get me wrong, I don&#8217;t think that it&#8217;s wrong for us to eat animals.  I think that it is part of our right as the dominant species in the discovered universe to use the resources that are available to us.  Evolution has granted us with extraordinary killing ability, and the primary purpose and motivator of that has been to kill other animals to eat.  But we need to be aware of the fact that delicious bacon doesn&#8217;t grow on trees; that a death had to occur for us to enjoy the crispy deliciousness found therein.</p>
<div class="wp-caption aligncenter" style="width: 230px"><a href="http://rdexposed.com/2011/11/19/bacon-fest/"><img title="BACON!" src="http://rdexposed.com/wp-content/uploads/2011/11/DSC03284-e1321733188798-768x1024.jpg" alt="Bacon Tree" width="220" height="320" /></a><p class="wp-caption-text">What a bacon tree might look like.</p></div>
<p>To reinforce this, I personally believe that you shouldn&#8217;t eat anything that you aren&#8217;t willing to kill yourself.  This doesn&#8217;t mean that you told the butcher to kill an animal.  This means that you should be the one to pull the trigger, to part the skin, to remove the organs, and to drain the body of blood before finally rinsing the flesh off and putting it into a pot, to simmer for a few hours before being consumed with a crusty piece of bread.  I think once you&#8217;ve gone through this experience you appreciate your food that much more.  It isn&#8217;t just something that magically appears at the super market.  It&#8217;s something that took a lot of effort and time, and ultimately something that you should enjoy.</p>
<p>This isn&#8217;t just empty preaching, either.  My kids have killed their dinner before (both have fished and my son has killed rabbits.)  I&#8217;ve killed rabbits and fish as well, and I was moving on to bigger and more interesting food.  I wanted to roast a pig.</p>
<div class="wp-caption aligncenter" style="width: 370px"><a href="http://www.chow.com/galleries/299/visually-stunning-dishes#!6653/whole-roasted-suckling-pig"><img class=" " title="A whole roasted suckling pig" src="http://www.chow.com/assets/2009/08/13693_whole_roasted_suckling_pig_600.jpg" alt="" width="360" height="240" /></a><p class="wp-caption-text">Pig, the other white meat!</p></div>
<p>I figured that my experience with killing the rabbits was sufficient, but just to be sure I found a local farm that the farmers assisted with the killing and gutting of the animal.  I spent several hours researching the most humane and fastest way to kill a pig.  How to gut it so that I could roast it appropriately.  I found recipes online, and prepared all the ingredients.  I went to the farm and picked out the pig a week before the kill was to go down.  I was quite prepared.</p>
<p>I invited my friend and bishop from church to come along.  He&#8217;s gone hunting numerous times and has experience killing and butchering his own meat, and so I thought that it would be a great idea to have some backup.  There was a church BBQ to celebrate the pioneers that I felt was going to be the perfect opportunity to present all 35 pounds of roast deliciousness.</p>
<p>The day of the big event I got the cooler and everything I needed.  I left my house at 7:00 am and arrived at the pig farm.  Our little guy was brought out.  Due to a confusion, I didn&#8217;t make the killing stroke, but held the animal down as he bled out (it took about 15-30 seconds.)  Then we scraped the hair off, and gutted the animal.  We were on our way back by 8:30, with a cleaned, gutted, hairless pig ready to be roasted.  I got home, stuffed the pig and put it into the oven for the first 4 hours of cooking.</p>
<p>I basted the pig with it&#8217;s own juices every 30 minutes, tenderly ensuring that the skin was kept intact, that the head and face were being cooked evenly without any burning.  I rubbed olive oil all over it to ensure that the flavor and natural oils didn&#8217;t get cooked out.</p>
<p>I then transferred the pig to the grill, where he cooked for another 4 hours.  I brought him to the church picnic, excited to see what everyone&#8217;s reaction would be.   This was by far the most expensive and elaborate meal that I had ever prepared.  It took a total of about 10 hours of my time, most of it carefully tending the grill, or the oven, or basting.</p>
<p>And I couldn&#8217;t eat a single bite.</p>
<p>Let me state that again.  The man that has eaten 5 plates of Mongolian grill that was only meat and vegetables; the man that has eaten an entire bacon explosion by himself in a single sitting; the man that has a reputation of putting away more than any other man save his own brother and is quite possibly the biggest tightwad in existence could not eat one bite of his $130 roast pig.</p>
<div class="wp-caption aligncenter" style="width: 260px"><a href="http://www.bbqaddicts.com/blog/recipes/bacon-explosion/"><img class="  " title="Bacon Explosion" src="http://www.bbqaddicts.com/blog/wp-content/uploads/2008/12/picture12.jpg" alt="" width="250" height="200" /></a><p class="wp-caption-text">It&#8217;s a bacon explosion, and it&#8217;s oh-so right.</p></div>
<p>You see all I could smell in it was the smell of the animal at the farm.  The smell of it&#8217;s insides as I carefully removed it&#8217;s organs.  There was no delicious ham scent.  There was no exquisite crisp fatty bacon smell.  All I could detect was farm smell.</p>
<p>You win some, you lose some.  I decided not to worry too much about it and went to the grill to get myself something else to eat.  I picked up a hotdog&#8230;and put it back down.  I couldn&#8217;t stomach the thought of it.  A hamburger&#8230; nope.</p>
<p>And so, I am an accidental vegetarian.  Since that day I have only been able to keep down a very little amount of meat.  Something went horribly awry akin to when fly and man DNA was merged, and a new mutant Sam has emerged.  This isn&#8217;t to say that I&#8217;ll be vegetarian forever.  I&#8217;m slowly getting to the point where hamburgers smell good again (pork still is in no way appetizing) and maybe someday I&#8217;ll be able to actually get to the food to the digesty parts of my body.  But until then I am trying to figure out how to keep enjoying my meals, sans le meat.</p>
]]></content:encoded>
			<wfw:commentRss>http://kennelbound.com/so-long-story-short-im-an-accidental-vegetarian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spark StackedFormSkin with ridiculous padding</title>
		<link>http://kennelbound.com/spark-stackedformskin-with-ridiculous-padding/</link>
		<comments>http://kennelbound.com/spark-stackedformskin-with-ridiculous-padding/#comments</comments>
		<pubDate>Thu, 10 May 2012 20:24:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[spark]]></category>
		<category><![CDATA[styles]]></category>

		<guid isPermaLink="false">http://kennelbound.com/?p=74</guid>
		<description><![CDATA[The spark StackedFormSkin is fantastic for laying out forms in a way that use a minimal amount of horizontal space, but still look nice and are a nice default look and feel for forms that you might be creating.  The downside to them is that they have an absurd amount of padding around the items [...]]]></description>
			<content:encoded><![CDATA[<p>The spark StackedFormSkin is fantastic for laying out forms in a way that use a minimal amount of horizontal space, but still look nice and are a nice default look and feel for forms that you might be creating.  The downside to them is that they have an absurd amount of padding around the items (perhaps flex is expecting you to use 16pt fonts or something.)  The really unfortunate part is that the paddings are not available for modification via CSS.  In other words, if you are frustrated that you can&#8217;t set the padding on a spark Form with the StackedFormSkin (and StackedFormItemSkin) then this is the post for you!</p>
<p>Here&#8217;s an example of a form using the standard StackedFormSkin</p>
<p><img title="Screen Shot 2012-05-10 at 9.10.00 AM.png" src="http://kennelbound.com/wp-content/uploads/2012/05/Screen-Shot-2012-05-10-at-9.10.00-AM.png" alt="Screen Shot 2012 05 10 at 9 10 00 AM" width="498" height="350" border="0" /></p>
<p>Note all of the wasted space around the various components.  I have added the following, which simply adds the ability to specify the padding around the components (with the original static values as the defaults.)</p>
<p><strong>StylableStackedFormSkin</strong></p>
<pre class="brush: xml; highlight: [46,47,48,49,50,51,52,53,54,55,62,63,64,65,66,84,85,86,87,88,89,90,91,92,115,128]; title: ; toolbar: true; notranslate">&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?--&gt;
&lt;!-- ADOBE SYSTEMS INCORPORATED Copyright 2010 Adobe Systems Incorporated All Rights Reserved. NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms of the license agreement accompanying it. --&gt;

&amp;nbsp;
&lt;![CDATA[         /**          * @copy spark.skins.spark.ApplicationSkin#hostComponent          */         [HostComponent(&quot;spark.components.Form&quot;)]         ]]&gt;
&lt;![CDATA[         [Bindable]         private var paddingLeft:Number = 10;         [Bindable]         private var paddingRight:Number = 10;         [Bindable]         private var paddingTop:Number = 10;         [Bindable]         private var paddingBottom:Number = 10;         [Bindable]         private var gap:Number = 7;         /**          *  @private          */         override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number) : void         {             updateNumberStyle('paddingLeft');             updateNumberStyle('paddingRight');             updateNumberStyle('paddingTop');             updateNumberStyle('paddingBottom');             updateNumberStyle('gap');             // Push backgroundColor and backgroundAlpha directly.             // Handle undefined backgroundColor by hiding the background object.             if (isNaN(getStyle(&quot;backgroundColor&quot;)))             {                 background.visible = false;             }             else             {                 background.visible = true;                 bgFill.color = getStyle(&quot;backgroundColor&quot;);                 bgFill.alpha = getStyle(&quot;backgroundAlpha&quot;);             }             super.updateDisplayList(unscaledWidth, unscaledHeight);         }         private function updateNumberStyle(styleName:String, internalPropertyName:String = null):void         {             if(!internalPropertyName) {                 internalPropertyName = styleName;             }             if(!isNaN(getStyle(styleName))) {                 this[internalPropertyName] = getStyle(styleName);             }         }         ]]&gt;


&lt;!--- Defines the appearance of the Form class's background. --&gt;


&lt;!--- @private --&gt;

&lt;!--     Note: setting the minimum size to 0 here so that changes to the host component's     size will not be thwarted by this skin part's minimum size.   This is a compromise,     more about it here: http://bugs.adobe.com/jira/browse/SDK-21143     --&gt;


&lt;!--- Displays the error text of the Form. --&gt;


&lt;!-- We set Form's showErrorTip and showErrorSkin to false, so we set them back          to true for the Form's elements --&gt;
&lt;!--- @copy spark.components.SkinnableContainer#contentGroup --&gt;




</pre>
<p><strong>StylableStackedFormItemSkin</strong></p>
<pre class="brush: xml; highlight: [44,45,46,47,48,49,50,51,52,53,59,60,61,62,100,101,102,103,104,105,106,107,108,151,152,156,161,162]; title: ; notranslate">&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?--&gt;
&lt;!-- ADOBE SYSTEMS INCORPORATED Copyright 2010 Adobe Systems Incorporated All Rights Reserved. NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms of the license agreement accompanying it. --&gt;

&amp;nbsp;

&amp;nbsp;

&lt;!-- host component --&gt;

&lt;![CDATA[         /**          * @copy spark.skins.spark.ApplicationSkin#hostComponent          */         [HostComponent(&quot;spark.components.FormItem&quot;)]         ]]&gt;
&lt;![CDATA[         [Bindable]         private var paddingLeft:Number = 10;         [Bindable]         private var paddingRight:Number = 10;         [Bindable]         private var paddingTop:Number = 10;         [Bindable]         private var paddingBottom:Number = 10;         /**          *  @private          */         override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number) : void         {             updateNumberStyle('paddingLeft');             updateNumberStyle('paddingRight');             updateNumberStyle('paddingTop');             updateNumberStyle('paddingBottom');             // Push backgroundColor and backgroundAlpha directly.             // Handle undefined backgroundColor by hiding the background object.             if (isNaN(getStyle(&quot;backgroundColor&quot;)))             {                 background.visible = false;             }             else             {                 background.visible = true;                 bgFill.color = getStyle(&quot;backgroundColor&quot;);                 bgFill.alpha = getStyle(&quot;backgroundAlpha&quot;);             }             var indicatorSource:Object;             if (currentState == &quot;error&quot; || currentState == &quot;requiredAndError&quot;)                 indicatorSource = getStyle(&quot;errorIndicatorSource&quot;);             else if (currentState == &quot;required&quot; || &quot;requiredAndDisabled&quot;)                 indicatorSource = getStyle(&quot;requiredIndicatorSource&quot;);             if (indicatorSource &amp;&amp; indicatorDisplay)             {                 indicatorDisplay.source = indicatorSource;             }             super.updateDisplayList(unscaledWidth, unscaledHeight);         }         /**          *  @private          */         override public function setCurrentState(stateName:String, playTransition:Boolean=true):void         {             super.setCurrentState(stateName, playTransition);             invalidateDisplayList();         }         private function updateNumberStyle(styleName:String, internalPropertyName:String = null):void         {             if(!internalPropertyName) {                 internalPropertyName = styleName;             }             if(!isNaN(getStyle(styleName))) {                 this[internalPropertyName] = getStyle(styleName);             }         }         ]]&gt;








&lt;!--- The column containing the sequence label. --&gt;

&lt;!--- The column containing the FormItem's label and content. --&gt;

&lt;!--- The column containing the FormItem's help content. --&gt;



&lt;!--- @private --&gt;

&lt;!--- @private --&gt;


&lt;!--- Defines the appearance of the FormItem's background. --&gt;


&lt;!--- @private --&gt;

&lt;!--- @copy spark.components.FormItem#sequenceLabelDisplay --&gt;

&lt;!--- @copy spark.components.FormItem#labelDisplay --&gt;

&lt;!--- @copy spark.components.SkinnableContainer#contentGroup --&gt;






&lt;!--- @private --&gt;


&lt;!--- @copy spark.components.FormItem#helpContentGroup --&gt;

</pre>
<p><strong>default.css</strong></p>
<pre class="brush: css; title: ; notranslate">/*Form Styling*/
s|Form {
skinClass: ClassReference(&quot;StylableStackedFormSkin&quot;);
paddingLeft: 0;
paddingRight: 0;
paddingTop: 0;
paddingBottom: 0;
gap: 0;
}
s|FormItem {
skinClass: ClassReference(&quot;StylableStackedFormItemSkin&quot;);
paddingLeft: 0;
paddingRight: 0;
paddingTop: 0;
paddingBottom: 0;
}</pre>
<p>As you can see with the image below, the amount of space can be reduced to a much more appropriate amount for smaller font sizes.</p>
<p><img title="Screen Shot 2012-05-10 at 1.21.24 PM.png" src="http://kennelbound.com/wp-content/uploads/2012/05/Screen-Shot-2012-05-10-at-1.21.24-PM.png" alt="Screen Shot 2012 05 10 at 1 21 24 PM" width="507" height="358" border="0" /></p>
]]></content:encoded>
			<wfw:commentRss>http://kennelbound.com/spark-stackedformskin-with-ridiculous-padding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex Spark Forms Overrdraw Woes</title>
		<link>http://kennelbound.com/flex-spark-forms-overrdraw-woes/</link>
		<comments>http://kennelbound.com/flex-spark-forms-overrdraw-woes/#comments</comments>
		<pubDate>Thu, 10 May 2012 20:12:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[containers]]></category>
		<category><![CDATA[overdraw]]></category>
		<category><![CDATA[spark form]]></category>

		<guid isPermaLink="false">http://kennelbound.com/?p=68</guid>
		<description><![CDATA[When working with Flex (in particular with the spark framework) you run into scenarios where labels and other text-type fields will overdraw their containers.  This is particularly obvious when you have a Spark form.  I&#8217;ve noticed this with the Flex 4.5 and 4.6 SDKs. The reason it does this is that the default Group (and [...]]]></description>
			<content:encoded><![CDATA[<p>When working with Flex (in particular with the spark framework) you run into scenarios where labels and other text-type fields will overdraw their containers.  This is particularly obvious when you have a Spark form.  I&#8217;ve noticed this with the Flex 4.5 and 4.6 SDKs.</p>
<p><img title="Screen Shot 2012-05-10 at 12.59.21 PM.png" src="http://kennelbound.com/wp-content/uploads/2012/05/Screen-Shot-2012-05-10-at-12.59.21-PM.png" alt="Screen Shot 2012 05 10 at 12 59 21 PM" width="540" height="540" border="0" /></p>
<p>The reason it does this is that the default Group (and it&#8217;s subclasses VGroup and HGroup)  do not, by default, scroll when the content is larger than the container size.  Their default behavior is to allow overdrawing.  To resolve, simply wrap your Group parent in a s:Scroller tag, as below:</p>
<p><strong>BEFORE:</strong></p>
<pre class="brush: xml; title: ; notranslate">&lt;s:Form width=&quot;100%&quot; height=&quot;100%&quot;&gt;
    &lt;s:FormItem label=&quot;Name&quot; width=&quot;100%&quot;&gt;
        &lt;s:TextInput id=&quot;Name&quot; /&gt;
    &lt;/s:FormItem&gt;
&lt;/s:Form&gt;</pre>
<p><strong>AFTER:</strong></p>
<pre class="brush: xml; title: ; notranslate">&lt;s:Scroller width=&quot;100%&quot; height=&quot;100%&quot;&gt;
	&lt;s:VGroup width=&quot;100%&quot; height=&quot;100%&quot;&gt;
		&lt;s:Form width=&quot;100%&quot; height=&quot;100%&quot;&gt;
			&lt;s:FormItem label=&quot;Name&quot; width=&quot;100%&quot;&gt;
				&lt;s:TextInput id=&quot;Name&quot; /&gt;
			&lt;/s:FormItem&gt;
		&lt;/s:Form&gt;
	&lt;/s:VGroup&gt;
&lt;/s:Scroller&gt;</pre>
<p><img title="Screen Shot 2012-05-10 at 1.00.03 PM.png" src="http://kennelbound.com/wp-content/uploads/2012/05/Screen-Shot-2012-05-10-at-1.00.03-PM.png" alt="Screen Shot 2012 05 10 at 1 00 03 PM" width="525" height="434" border="0" /></p>
<p>Your end result is a form that work much more nicely with the container.  If the content requires more space than that allowed by the Form&#8217;s container, it will go into a scroll-state.</p>
]]></content:encoded>
			<wfw:commentRss>http://kennelbound.com/flex-spark-forms-overrdraw-woes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe AIR and iOS Certificate Woes</title>
		<link>http://kennelbound.com/adobe-air-and-ios-certificate-woes/</link>
		<comments>http://kennelbound.com/adobe-air-and-ios-certificate-woes/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 03:43:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Development mobile]]></category>

		<guid isPermaLink="false">http://kennelbound.com/adobe-air-and-ios-certificate-woes/</guid>
		<description><![CDATA[I&#8217;ve recently gotten into Adobe Air on mobile devices (seeing as I had to write an iPad app for work, and our main UI is all built in Flex, this was a perfect framework for me.) Getting ready to go on vacation, I ran into a very frustrating problem when I tried to load the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently gotten into Adobe Air on mobile devices (seeing as I had to write an iPad app for work, and our main UI is all built in Flex, this was a perfect framework for me.)  Getting ready to go on vacation, I ran into a very frustrating problem when I tried to load the application onto my device for testing.  &#8220;APP_NAME could not be installed.&#8221;</p>
<p>Adobe Air works on mobile devices by cross-compiling the flash into iOS native code.   During the cross-compile, the application is signed for deployment via the Apple App Store (or Ad-Hoc distribution.)  This signature process through me off my game, as there are a combination of certificates, provisioning profiles, and other madness.</p>
<p>I was finally able to get my application to run and install correctly when I did the following:</p>
<p>1) Found the &#8220;Distribution&#8221; certificate. This is generated on the Apple website using the Certificate Request mechanism<br />
2) Generated a Ad Hoc Distribution certificate for my application.  This should be tied to the Distribution certificate<br />
3) Set the application id in the application config to the name of the Apple application id (without the &#8220;company prefix&#8221;)<br />
4) Signed the application using adt, the certificate, the mobile provision, and the appropriate application config.</p>
<p>The part that caught me up was the application ID didn&#8217;t match the one in the configuration file, and so my application wouldn&#8217;t install.  This was particularly frustrating as the adt still signed the .ipa file, it just wouldn&#8217;t load on my iPad. </p>
<p>Long story short, if you get this error, make absolutely sure you are signing it with the right id.</p>
<p>Btw, I have a simple project template with ant that will do all this for those that are interested. Let me know if you want me to post it. </p>
<p>- Posted from my iPad<br /></p>
]]></content:encoded>
			<wfw:commentRss>http://kennelbound.com/adobe-air-and-ios-certificate-woes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Running Lejos on RCX 2.0 and Mac OSX Snow Leopard</title>
		<link>http://kennelbound.com/running-lejos-on-rcx-2-0-and-mac-osx-snow-leopard/</link>
		<comments>http://kennelbound.com/running-lejos-on-rcx-2-0-and-mac-osx-snow-leopard/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 23:12:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://kennelbound.com/running-lejos-on-rcx-2-0-and-mac-osx-snow-leopard/</guid>
		<description><![CDATA[Yesterday I purchased a Lego Mindstorms NXT 2.0 for my son. It was ridiculously expensive. I had a focus on robotics in my BS program, so I was excited to build some robots with him. At the time, we used the Lego Robotics Invention System (now called RCX). I went onto craigslist and found one [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I purchased a Lego Mindstorms NXT 2.0 for my son.</p>
<p>It was ridiculously expensive. I had a focus on robotics in my BS program, so I was excited to build some robots with him. At the time, we used the Lego Robotics Invention System (now called RCX). I went onto craigslist and found one of these machines so that I could build robots with my son, but without the $300+ pricetag.</p>
<p>After procuring the machine, I spent some time trying to setup the development environment I had used back in college. Unfortunately, the C toolchain I had used was not available for Mac (at least, I couldn&#8217;t find a tutorial on setting it up.) I found an interesting firmware replacement at lejos.org that allows you to code your applications in java, using a custom library set.</p>
<p>Being a Java developer by day, this appealed to me quite a bit. So I set about the long process of trying to get lejos to work on my 64-bit Snow Leopard MBP&#8230; and failed miserably. There were compilation issues (conversion of 64-bit pointers to 32-bit handles in the code necessary to communicate with the IR tower (used to program the RCX).</p>
<p>Finally, I found <a href="http://lejos.sourceforge.net/forum/viewtopic.php?f=10&amp;t=1673">http://lejos.sourceforge.net/forum/viewtopic.php?f=10&amp;t=1673</a>, and the link by tsinn where he&#8217;d setup an installer for the lejos subsystem and toolchain onto Mac OSX 10.5 (a 32-bit system). After downloading his system, then making a couple of tweaks, I was able to generate the following package: <a href="http://kennelbound.com/downloads/lejos3.zip" title="lejos3">http://kennelbound.com/downloads/lejos3.zip</a></p>
<p>To use, simply do the following:</p>
<p>1) Download and extract the lejos3,zip to a local folder (such as /personal/lejos3)<br />
2) Edit the lejos.env file and change the LEJOS_HOME to point to the directory where you extracted it.<br />
3) Open a command console, and cd to the LEJOS_HOME directory<br />
4) Type in &#8220;source lejos.env&#8221; (without the quotes)<br />
5) cd to the LEJOS_HOME/bin directory<br />
6) Install the firmware onto the RCX using &#8220;./firmdl&#8221; without the quotes<br />
7) You should see some progress. Once it completes, you now have the RCX running lejos!</p>
<p>You can test it with a simple Hello World application:</p>
<p>1) cd to lejos3/examples/test/hworld<br />
2) execute &#8220;lejosjc HelloWorld; lejos HelloWorld&#8221; without the quotes to compile and send the program to the RCX.<br />
3) Once it&#8217;s done, on the RCX, press the &#8220;Run&#8221; button.</p>
<p>You should see &#8220;hello world&#8221; on the RCX&#8217;s LCD.</p>
<p>Next time, I&#8217;ll write down how I have Intellij setup so that I can run and load the applications with ease!</p>
]]></content:encoded>
			<wfw:commentRss>http://kennelbound.com/running-lejos-on-rcx-2-0-and-mac-osx-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tasty: Steak for Breakfast?</title>
		<link>http://kennelbound.com/tasty-steak-for-breakfast/</link>
		<comments>http://kennelbound.com/tasty-steak-for-breakfast/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 05:01:08 +0000</pubDate>
		<dc:creator>Sam Alston</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[baking]]></category>
		<category><![CDATA[cheese]]></category>
		<category><![CDATA[pie crust]]></category>
		<category><![CDATA[steak]]></category>

		<guid isPermaLink="false">http://kennelbound.com/tasty-steak-for-breakfast/</guid>
		<description><![CDATA[I had a leftover pie crust, it was 8 am, and I was hungry. Whatever is a boy to do? Since we had leftover steak the night before, I decided to try and make a steak and cheese egg tart.  I found various recipe’s online, and got to work. First, you have to take the [...]]]></description>
			<content:encoded><![CDATA[<p>I had a leftover pie crust, it was 8 am, and I was hungry.</p>
<p>Whatever is a boy to do?</p>
<p>Since we had leftover steak the night before, I decided to try and make a steak and cheese egg tart.  I found various recipe’s online, and got to work.</p>
<p><img style="display: inline; border: 0px;" title="Shoot Name-002" src="http://kennelbound.com/wp-content/uploads/2010/03/ShootName002.jpg" border="0" alt="Shoot Name-002" width="585" height="390" /></p>
<p>First, you have to take the pie crust (either homemade or store bought) and cut it into fours.  Then roll the sections into roughly circular sections.  The directions then said to press the pie crust into the back of a muffin tin.  What they meant to say, (and what you should do) is to put a muffin cup into the muffin tin, and then press the pie filling into the muffin cup, so that the pie crust is in the appropriate shape.</p>
<p>Unfortunately, I misunderstood the directions:</p>
<p><img style="display: inline; border: 0px;" title="Shoot Name-001" src="http://kennelbound.com/wp-content/uploads/2010/03/ShootName001.jpg" border="0" alt="Shoot Name-001" width="585" height="390" /></p>
<p>You may have noticed that I literally pressed it <em><strong>onto</strong> </em>the <strong><em>back</em></strong> on the pie tin.</p>
<p><img style="display: inline; border: 0px;" title="Shoot Name-003" src="http://kennelbound.com/wp-content/uploads/2010/03/ShootName003.jpg" border="0" alt="Shoot Name-003" width="585" height="390" /></p>
<p>Here’s a close-up of that epic mistake.  The nice thing about having it on the back of the pie tin, is that you end up with perfectly sized cups for the steak, egg, and cheese.</p>
<p><img style="display: inline; border: 0px;" title="Shoot Name-004" src="http://kennelbound.com/wp-content/uploads/2010/03/ShootName004.jpg" border="0" alt="Shoot Name-004" width="585" height="390" /></p>
<p>Another close-up of the crust (this is just before I realized my mistake – after baking at 400 degrees for about 8 minutes to firm up before being filled.)  Unfortunately it’s almost impossible to peel off the back of the pie tin in one piece.  You end up with crumbled messes.</p>
<p><img style="display: inline; border: 0px;" title="Shoot Name-005" src="http://kennelbound.com/wp-content/uploads/2010/03/ShootName005.jpg" border="0" alt="Shoot Name-005" width="585" height="390" /></p>
<p>I was able to save two of my pie crust cups, the other 2 were damaged beyond repair.  At this point I just stuffed them into the muffin cups, put the sliced steak on the bottom, drizzled cheese and a scrambled egg into the cup and finished baking at 350 for about another 10 minutes (or until the egg was fluffy.)</p>
<p><img style="display: inline; border: 0px;" title="Shoot Name-006" src="http://kennelbound.com/wp-content/uploads/2010/03/ShootName006.jpg" border="0" alt="Shoot Name-006" width="585" height="390" /></p>
<p>This was one of the cups that almost made it.</p>
<p><img style="display: inline; border: 0px;" title="Shoot Name-007" src="http://kennelbound.com/wp-content/uploads/2010/03/ShootName007.jpg" border="0" alt="Shoot Name-007" width="585" height="390" /></p>
<p>In the end, though, the muffin cups salvaged the meal.   Steak + eggs + cheese + pie crust = delicious breakfast food.</p>
<p>Here’s the official recipe:</p>
<p><strong>Ingredients:</strong><br />
1 pie crust mix or store bought pie crust<br />
3 eggs<br />
1 cup grated cheddar cheese<br />
1 cup of sliced steak (cooked bacon or canadian bacon works almost as well)<br />
(Optional) 1 cup of grilled onions</p>
<p><strong>Directions</strong><br />
Preheat the oven to 400 degrees.</p>
<p>Make the pie crust (if using a mix or creating from scratch) and roll it out flat.  Cut into 6 equal pieces, and then roll those into generally circular shapes.  Put muffin cups into a muffin tin, and then press the pie crust into the muffin cups.</p>
<p>While this is baking, beat the 3 eggs together.  You can add salt, pepper, and possibly a dash of dill to the eggs.</p>
<p>Put the muffin tin into the oven and bake for approximately 8 minutes (until the pie crust is just starting to brown.)  When you take it out, turn the oven down to 350 degrees.</p>
<p>Fill the bottom of the pie cup with meat and cheese in equal amounts.  Pour the scrambled eggs on top of the steak and cheese.  Place it back in the over for until the eggs are fluffy (usually about 10 minutes.)</p>
<p>Serve warm.</p>
<p><em><strong>Update 03/15/10:</strong></em> So I tried it again, using the muffin cups from the beginning with great success (and they look pretty good too.)  I&#8217;ll try and get pictures up soon.  Also, if you scramble the meat and cheese into the eggs you end up with a better distribution of meat, egg, and cheese.</p>
]]></content:encoded>
			<wfw:commentRss>http://kennelbound.com/tasty-steak-for-breakfast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Games: Fallout 3 Hacking Minigame Solver</title>
		<link>http://kennelbound.com/fallout-3-solver/</link>
		<comments>http://kennelbound.com/fallout-3-solver/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 15:14:20 +0000</pubDate>
		<dc:creator>Sam Alston</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[fallout3]]></category>

		<guid isPermaLink="false">http://kennelbound.com/?p=12</guid>
		<description><![CDATA[I&#8217;ve added my Fallout 3 Solver back to the website, so if you were having trouble finding it before it is back now. For those that haven&#8217;t used it before: In Fallout 3 there are computer terminals all around the world.  To access some of them you have to pass a &#8220;hacking&#8221; puzzle.  Sometimes its [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve added my <a title="Hacking Minigame Solver" href="http://kennelbound.com/fallout3/">Fallout 3 Solver</a> back to the website, so if you were having trouble finding it before it is back now.</p>
<p>For those that haven&#8217;t used it before: In Fallout 3 there are computer terminals all around the world.  To access some of them you have to pass a &#8220;hacking&#8221; puzzle.  Sometimes its fun to play this out and try and solve the puzzle manually.  However, often I really needed what was in the next room and the door was controlled by the computer.</p>
<p>To ensure that I didn&#8217;t lose my chances, I wrote this solving tool.</p>
<p>The tool has percentages based upon how common the letters are in it.  For example, the letter e is the most common letter in the English language.  It seems to me then that a word with an e in it is more likely to occur than a word with no e&#8217;s in it.  That being said, the percentages are just for fun.</p>
<p>Enjoy and leave me comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://kennelbound.com/fallout-3-solver/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WSDL2Java with Maven &#8211; Fixing &#8220;BadCommandLineException: grammar is not specified&#8221;</title>
		<link>http://kennelbound.com/wsdl2java-with-maven-fixing-badcommandlineexception-grammar-is-not-specified/</link>
		<comments>http://kennelbound.com/wsdl2java-with-maven-fixing-badcommandlineexception-grammar-is-not-specified/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 21:49:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[java wsdl autogen spring xsd maven]]></category>

		<guid isPermaLink="false">http://kennelbound.com/?p=8</guid>
		<description><![CDATA[At my job, we use the wsdl2java maven plugin to generate the appropriate classes from the webservices&#8217; wsdl document. When we received notice that we were to incorporate a new webservice into the system, we thought &#8220;No big deal, we&#8217;ll just use the plugin and be off!&#8221; Unfortunately, we ran into the dreaded &#8220;com.sun.tools.xjc.BadCommandLineException: grammar [...]]]></description>
			<content:encoded><![CDATA[<p>At my job, we use the wsdl2java maven plugin to generate the appropriate classes from the webservices&#8217; wsdl document.  When we received notice that we were to incorporate a new webservice into the system, we thought &#8220;No big deal, we&#8217;ll just use the plugin and be off!&#8221;</p>
<p>Unfortunately, we ran into the dreaded &#8220;com.sun.tools.xjc.BadCommandLineException: grammar is not specified&#8221; error.  After inspecting the code I couldn&#8217;t find any issue.  The wsdl was right there, and it didn&#8217;t reference any outside xsds or anything?  What&#8217;s the problem?</p>
<p>I did a google search.  Found some interesting threads from nabble that had nothing to do with my problem.  Eventually, I found that (with a misleading name) the wsdl2java plugin doesn&#8217;t automatically pickup xsds.  If you are pointed to a directory that has XSDs (usually referenced by the actual wsdl files) it will autogen from those.  But if your xsd are in a subdirectory (or not needed for such a simple webservice) then wsdl2java blows up with the grammar error.</p>
<p>I ended up the following in my pom:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;plugin&gt;
    &lt;groupId&gt;com.sun.tools.xjc.maven2&lt;/groupId&gt;
    &lt;artifactId&gt;maven-jaxb-plugin&lt;/artifactId&gt;
    &lt;executions&gt;
        &lt;execution&gt;
            &lt;!-- This one has the xsd's in the same directory, so it was already working --&gt;
            &lt;id&gt;simple-xsd-wsdl2java&lt;/id&gt;
            &lt;phase&gt;generate-sources&lt;/phase&gt;
            &lt;goals&gt;
                &lt;goal&gt;generate&lt;/goal&gt;
            &lt;/goals&gt;
            &lt;configuration&gt;
                &lt;!-- directory of the wsdls and the xsds --&gt;
                &lt;schemaDirectory&gt;src/main/wsdl/simple&lt;/schemaDirectory&gt;
                &lt;generateDirectory&gt;src/autogen/simple&lt;/generateDirectory&gt;
                &lt;readOnly&gt;true&lt;/readOnly&gt;
            &lt;/configuration&gt;
        &lt;/execution&gt;
        &lt;execution&gt;
            &lt;!-- This one was only the WSDL files, with no external XSDs --&gt;
            &lt;id&gt;wsdlOnly-wsdl2java&lt;/id&gt;
            &lt;phase&gt;generate-sources&lt;/phase&gt;
            &lt;goals&gt;
                &lt;goal&gt;generate&lt;/goal&gt;
            &lt;/goals&gt;
            &lt;configuration&gt;
                &lt;!-- directory of the wsdl files --&gt;
                &lt;schemaDirectory&gt;src/main/wsdl/wsdlOnly&lt;/schemaDirectory&gt;
                &lt;generateDirectory&gt;src/main/autogen/wsdlOnly&lt;/generateDirectory&gt;
                &lt;readOnly&gt;true&lt;/readOnly&gt;
                &lt;includeSchemas&gt;
                    &lt;!-- Each schema has to be spelled out as an includedSchema, or it will be ignored --&gt;
                    &lt;includeSchema&gt;AccountService.wsdl&lt;/includeSchema&gt;
                    &lt;includeSchema&gt;SystemService.wsdl&lt;/includeSchema&gt;
                    &lt;includeSchema&gt;GiftService.wsdl&lt;/includeSchema&gt;
                &lt;/includeSchemas&gt;
                &lt;!-- Indicates to the grammar parser that the schema files are in the wsdl format --&gt;
                &lt;args&gt;-wsdl&lt;/args&gt;
            &lt;/configuration&gt;
        &lt;/execution&gt;
    &lt;/executions&gt;
&lt;/plugin&gt;
</pre>
<p>Notice that in the wsdlOnly configuration I have specifed each schema file separately.  I think there is a way to specify a directory/wildcard search, but I didn&#8217;t spend the time figuring it out.  The other immensely important part is adding the args section.  This tells the parser that the files are in wsdl format, not in XSD.</p>
<p>I hope that this helps anyone out there looking for a way to auto generate class files to use with SpringWS from stand-alone wsdl files.</p>
]]></content:encoded>
			<wfw:commentRss>http://kennelbound.com/wsdl2java-with-maven-fixing-badcommandlineexception-grammar-is-not-specified/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
