<?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>SkyTech Systems Inc.</title>
	<atom:link href="http://www.skytechsys.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.skytechsys.com</link>
	<description></description>
	<lastBuildDate>Sat, 26 Feb 2011 01:11:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Don&#8217;t code on Jetty and Deploy to Tomcat (If classpath ORDER is important)</title>
		<link>http://www.skytechsys.com/20101117/maven-jetty-classpath-problem/</link>
		<comments>http://www.skytechsys.com/20101117/maven-jetty-classpath-problem/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 00:56:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.skytechsys.com/?p=156</guid>
		<description><![CDATA[Background Recently we&#8217;ve just integrated a new Dev, Cert, Production environment in which we use: Java Spring Maven Eclipse Using Jetty for development and Tomcat for deployment.  In hindsight that statement is a dead giveaway that problems are forthcoming.  Since usually it&#8217;s a good idea to use the same kind of environment for Dev, Cert [...]]]></description>
			<content:encoded><![CDATA[<p></p><h2>Background</h2>
<p>Recently we&#8217;ve just integrated a new Dev, Cert, Production environment in which we use:</p>
<ol>
	<li>Java</li>
	<li>Spring</li>
	<li>Maven</li>
	<li>Eclipse</li>
</ol>
<p>Using Jetty for development and Tomcat for deployment.  In hindsight that statement is a dead giveaway that problems are forthcoming.  Since usually it&#8217;s a good idea to use the same kind of environment for Dev, Cert and Prod.</p>
<h3>Previous Jetty Pluggin Configuration:</h3>
<p>Here is the plugin configuration we used for a Jetty (SSL only) configuration inside of our pom.xml/project/build/plugins:</p>
<pre>	&lt;plugin&gt;
		&lt;groupId&gt;org.mortbay.jetty&lt;/groupId&gt;
		&lt;artifactId&gt;maven-jetty-plugin&lt;/artifactId&gt;
		&lt;configuration&gt;
			&lt;contextPath&gt;/&lt;/contextPath&gt;
			&lt;connectors&gt;
	        		&lt;connector implementation="org.mortbay.jetty.security.SslSocketConnector"&gt;
	                		&lt;port&gt;8002&lt;/port&gt;
					&lt;maxIdleTime&gt;60000&lt;/maxIdleTime&gt;
					&lt;keystore&gt;${project.build.directory}/secure.server/WEB-INF/classes/jetty-ssl.keystore&lt;/keystore&gt;
					&lt;password&gt;jetty6&lt;/password&gt;
					&lt;keyPassword&gt;jetty6&lt;/keyPassword&gt;
				&lt;/connector&gt;
			&lt;/connectors&gt;
		&lt;/configuration&gt;
	&lt;/plugin&gt;
</pre>
<h2>Goal &#8211; Overridden Resources</h2>
<p>We develop in as modular fashion as possible so some projects provide &#8220;Default configurations&#8221; that are expected to be overriden by consuming projects.  Things such as properties files and spring configurations.</p>
<p><strong>Example:</strong></p>
<p>Project A has settings.properties in the resulting jar classes directory and<br />Project B also has an override version of settings.properties in it&#8217;s resulting classes directory.</p>
<p>This is an integral part of our deployment process allowing us to keep cert and prod passwords out of the main project where developers will see.</p>
<h2>Symptoms</h2>
<p>We found that during development sometimes our override settings would be ignored and the &#8220;default configuration&#8221; would be used.  To be clear:</p>
<p>Project A\classes has:<br />\settings.properties<br />\some classes and packages</p>
<p>Project B\classes has:<br />\settings.properties<br />\some other classes and packages</p>
<p>When we tried to access settings.properties in the classpath spring at runtime, <strong>sometimes the Project A version was used and sometimes the Project B version was used.</strong></p>
<p><strong>Example spring Include:</strong></p>
<pre>	&lt;bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt;
		&lt;property name="location" value="classpath:settings.properties" /&gt;
	&lt;/bean&gt;
	&lt;bean id="testStringValue" class="java.lang.String"&gt;
		&lt;constructor-arg index="0" value="${test.string.value}" /&gt;
	&lt;/bean&gt;
</pre>
<p><strong>Example properties file:</strong></p>
<pre>	test.string.value=String Value 1
</pre>
<h2>Found Issue</h2>
<p>After lots of troubleshooting, we ruled out both Spring and Maven as the culprit.  Using test classes in Maven to run the SAME test code worked perfectly (used Project B version), while for some reason using &#8220;mvn jetty:run&#8221; to have the same code invoked FAILED as stated above.</p>
<p>We therefore found that Jetty was actually the issue, likely boiling down to one of these things:</p>
<ul>
	<li>the out of the box configuration</li>
	<li>a shortcoming in Jetty</li>
	<li>or the Maven Jetty pluggin</li>
</ul>
<h2>Resolution</h2>
<p>We switched to tomcat development/testing environment by using &#8220;mvn tomcat:run&#8221; to test and this configuration instead: (Cofigured to be SSL only)</p>
<pre>	&lt;plugin&gt;
		&lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
		&lt;artifactId&gt;tomcat-maven-plugin&lt;/artifactId&gt;
			&lt;version&gt;1.1&lt;/version&gt;
		&lt;configuration&gt;
			&lt;path&gt;/&lt;/path&gt;
			&lt;httpsPort&gt;8443&lt;/httpsPort&gt;
			&lt;port&gt;0&lt;/port&gt;
			&lt;keystoreFile&gt;${project.build.directory}/secure.server/WEB-INF/classes/jetty-ssl.keystore&lt;/keystoreFile&gt;
			&lt;keystorePass&gt;jetty6&lt;/keystorePass&gt;
		&lt;/configuration&gt;
	&lt;/plugin&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.skytechsys.com/20101117/maven-jetty-classpath-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Which is better Java or .Net</title>
		<link>http://www.skytechsys.com/20101004/java-or-dot-net/</link>
		<comments>http://www.skytechsys.com/20101004/java-or-dot-net/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 04:29:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.skytechsys.com/?p=121</guid>
		<description><![CDATA[I have been asked this question numerous times and, since I have a unique perspective to offer on the topic, I figured I&#8217;d write a post about it. Background First a little background.  These opinions are coming from someone who regularly develops large applications in both Java and .Net. and is certified by both Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p>I have been asked this question numerous times and, since I have a unique perspective to offer on the topic, I figured I&#8217;d write a post about it.</p>
<h2>Background</h2>
<p>First a little background.  These opinions are coming from someone who regularly develops large applications in both Java and .Net.  and is certified by both Microsoft and Sun with programming certifications:</p>
<ul>
	<li>Sun Certified Java Programmer for Java 1.5</li>
	<li>Microsoft Certified Technology Specialist: .Net Framework 2.0: Web Applications</li>
	<li>Microsoft Certified Technology Specialist: .Net Framework 2.0: Windows Applications</li>
	<li>Microsoft Certified Technology Specialist: .Net Framework 2.0: Distributed Applications</li>
</ul>
<p><br /> Yes the Java and Microsoft tests are quite brainwashing <img src='http://www.skytechsys.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br /> <br /> I have been programming for a long time and have, like many career developers, developed in at least 20+ different mainstream languages.<br /> <br /> That being said, I still lead a normal life and do NOT have star-wars pajamas.</p>
<h1>Java or .Net</h1>
<p>Short answer: I love both.   Both can do the same tasks yet both do them quite differently.<br /> <br /> With each you will notice a flavor that is unmistakable, and as such you will tend to use them for different things should you have the choice.  This article is relevant to Web Development, Desktop Development, Database Development etc.  Both platforms are capable of the same things now-days and the outcome is the same across all of these areas.</p>
<h2>About: Java</h2>
<h3>Feel</h3>
<p>Java has a more open and unrestricted feel.  If you want something you don&#8217;t see, you can make it yourself or, chances are, someone has <strong>already written</strong> it and has most likely shared the source code for you.  You are allowed to have access to the underlying platforms and if there is a bug or feature you don&#8217;t understand you are free to investigate it yourself.</p>
<h3>Development Environment</h3>
<p>In Java, getting started with your Development Environment (program used to write code) is generally harder, yet getting a new server is cheaper.  In the event that you wish your application to run on a completely different operating system, chances are you can do it without rewriting everything.<br /> <br /> For a developer, the Integrated Development Environment (IDE) is your window into the world of code.  Without it you would be writing every line of code by hand which without these tools would be between 5 and 50 times the work.  With Java, in order to get up and running, you need to set up this tool, the prerequisites and the 50 plugins that you need yourself.  The process takes more mental effort and has a lot of points where something can go wrong.  Keep in mind though, this generally only happens once per machine.   It&#8217;s just really annoying when you have to do it on a new machine.<br /> <br /> That being said, I find that the Java IDEs tend to be much more helpful than their .Net counterpart.  They tend to offer more &#8220;shortcuts&#8221; for you to get more work done with less time.  Once you get used to Eclipse (the Primary industry standard Java IDE), you can code up a storm in no time flat.  Again, imagine you thought of a new &#8220;shortcut&#8221; feature, you could code it yourself and have it in the official distribution of Eclipse in a matter of months for everyone on the planet to use.</p>
<h3>Price</h3>
<p>In comes one of the primary differentiators in the market.  To start up with Java, you can theoretically do it without paying ANY licensing costs.  This one line bugs a lot of people.<br /> <br /> Am I saying Java is a cheaper platform than .Net to an organization?  No, but you can start it up for darn near free.<br /> <br /> When choosing a platform for an organization there are a myriad of points to take into account.  Not the least of which is available local help.  If there are no Java developers in your area yet you have plenty of .Net developers on tap I&#8217;d say that&#8217;s a pretty big part of the equation.  If Java developers are $X/hr and .Net developers are 1/2 $X/hr I&#8217;d also say that&#8217;s a pretty big part of the equation.<br /> <br /> No matter what anyone says, given all other factors being equal, Java is cheaper to run, straight from the bank account.</p>
<h2>About: .Net (usually C#.Net)</h2>
<p>(Mainstream .Net, not mono or other open source initiatives)</p>
<h3>Feel</h3>
<p>The feeling of .Net is a more rapid development feel.   You get a lot more of a &#8220;just get it done&#8221; approach because developers have VERY LITTLE control over the underlying framework and are often penalized for re-inventing something that Microsoft provides a library for.  Whether or not the library is good or crap.  Nowadays the Microsoft libraries, tools and practices are PRETTY DARNED GOOD.  I know this may shock a lot of people coming from the Java world.  It didn&#8217;t used to be this way.  In the past Microsoft&#8217;s development platforms have tended to kind-of suck.  But these aren&#8217;t the VB6 days or the .Net 1.1 days.  We&#8217;re on .Net 3.5+ and since 2.0 they&#8217;ve been cooking with gas.</p>
<h3>Development Environment</h3>
<p>Insert CD and press Go.  That&#8217;s the process with Microsoft&#8217;s Visual Studio .Net (VS.Net) development environment.  You point and click and the work is done for you.  Everything just works and there is a lot less to worry about configuring or understanding for that matter.  This has been a staple for Microsoft from the start, however with the changes in creating a platform like .Net to give such massive capabilities, there is one new caveat.  Sometimes, when things go wrong&#8230; they go wrong they go HORRIBLY wrong.  Given the closed nature of the platform you are dealing with more &#8220;black boxes&#8221; and that mean harder to fix.  Therefore an experienced superstar developer can chase his/her tail for 5 hrs to find a setting required to fix a problem and only at the end of 5 hrs of searching will they find it or find that you CANT do it.<br /> <br /> Microsoft has been learning from java and has incorporated more &#8220;shortcuts&#8221;, however with the longer time to market I still find Java IDE&#8217;s come out ahead there consistently.  That will likely change in the next couple of years.<br /> <br /> VS.Net also offers some benefits over Eclipse in terms of Integration.  Being that both IDEs are extensible, they both have a laundry list of capabilities, however VS.Net is developed by the same company that developed the database server, the integration server, web server, the source control server and so on. More things just work and also there are a lot more out of the box visual screens to configure these pieces with your code.</p>
<h3>Price</h3>
<p>Well, here&#8217;s the kicker.  In order to use that press and go environment, at the time of writing this article it will cost you:</p>
<ul>
	<li>$750 per developer (for VS.Net 2010 pro)  or $1k-$2k with a MSDN subscription.  (MSDN is the &#8220;in club&#8221; for Microsoft that offers upgrades, software and developer support tools.</li>
	<li>$750 per server (Windows 2008 R2) for the first 5 users, then $170 per additional 5 users</li>
	<li>$2400 per database server (in addition to Windows 2008 license) for the first 10 users, additional users extra.</li>
</ul>
<p>This list does not include things like anti-virus protection or email servers etc.  This is JUST to get you up and running for development only.  Being a &#8220;Microsoft shop&#8221; has its advantages and disadvantages and the full costs there are out of the scope of this article, but believe me it&#8217;s not cheap to do &#8220;legally&#8221; even if you don&#8217;t want the full feature-set.<br /> <br /> I personally find that developers that use .Net often simply use pirated versions that they get from work or friends and have noticed this as a trend in colleges too.  Often students want to learn the real thing and do not want the crippled version made available to them by their university.  Both of these are technically illegal.  Most developers I have come into contact with believe that Microsoft recognizes that the extremely high costs of the platform puts it WELL out of reach of the very developers they need to use their products.  In recognizing that people seem to think they don&#8217;t mind.<br /> <br /> Personally I find it scary to have $70k of illegal software loaded on a drive for someone to find.  That&#8217;s just me though.</p>
<h2>Verdict</h2>
<p>As a mixed developer (remember the background), I routinely use both platforms on a regular basis and here is why:</p>
<h3>Price</h3>
<p>For projects in my own business, 9 times out  of 10 I chose Java due to the low cost of getting a production rackspace  VM, throwing up tomcat, loading my code and being done.<br /> <br /> When you multiply the licensing costs by three for development, certification and production environments, for a small business that cost is crippling.  So  since I&#8217;m the one paying for these licenses AND I don&#8217;t have to  pay  80k/yr for a sys-admin (I can do it myself), I chose Java for most  of MY  OWN projects.<br /> <br /> Also, there&#8217;s more scriptability with Java since you can use Linux so creating new environments tends to be much more of a breeze no need for point and click.</p>
<h3>Capability</h3>
<p>In my opinion, a seasoned developer in either platform (C# is the predominant .Net language) can accomplish the same tasks and provide the same benefits of robust code, scalability and maintenance friendly.<br /> <br /> So ignoring &#8220;mistakes&#8221; made by inexperienced developers, there is still one thing I have noticed that is very different between the platforms.</p>
<h3>Sales???</h3>
<p>In my experience (as a consultant so keep that in mind) .Net work seems to pay more and to do it consistently.  Many corporations that aren&#8217;t in the business of releasing software and instead develop it in-house for themselves seem to appreciate the &#8220;no brainer&#8221; approach of relying on Microsoft&#8217;s suggestions rather than having to explain to their SVP why these technical details are better than those technical details.  They can just say, It&#8217;s Microsoft&#8217;s standard.  End of story, now budget me $200k more.<br /> <br /> But again keep in mind it depends on what part of the world you are in, what type of budget the companies you plan on doing work for have etc etc etc.<br /> <br /> Here&#8217;s a special tidbit though:<br /> From a marketing standpoint, what would you prefer to look for in a customer that you have not met: 1) A customer who has possibly demonstrated his/her willingness to chose the cheaper route 2) One who has possibly demonstrated his/her willingness to pay more for the &#8220;right thing&#8221;?  (keep in mind: If you don&#8217;t know better, you might rely on an &#8220;authority&#8221; like Microsoft)<br /> <br /> I think an argument is there to be made that a &#8220;Microsoft shop&#8221; may be in some cases a more desired client because they TEND to pick less at costs and SEEM more concerned with the outcome and final ROI.  Also they tend to be more willing to give you more of the technical burden because in general they don&#8217;t understand it.  All Java/.Net clients do not fit these trends however if you were to pick a customer base, you would need to consider this angle.<br /> <br /> There area lot of arguments that can be made for and against the platforms, but these are the reasons I choose them and use BOTH regularly.<br /> <br /> ~JC</p>
]]></content:encoded>
			<wfw:commentRss>http://www.skytechsys.com/20101004/java-or-dot-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SkyTech Blog Launched</title>
		<link>http://www.skytechsys.com/20101004/skytech-blog-launched/</link>
		<comments>http://www.skytechsys.com/20101004/skytech-blog-launched/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 02:45:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.skytechsys.com/?p=119</guid>
		<description><![CDATA[The SkyTech Systems Inc. Blog has officially launched! Thanks for checking it out, we hope you enjoy the content.]]></description>
			<content:encoded><![CDATA[<p></p>The SkyTech Systems Inc. Blog has officially launched!

Thanks for checking it out, we hope you enjoy the content.]]></content:encoded>
			<wfw:commentRss>http://www.skytechsys.com/20101004/skytech-blog-launched/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

