<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="https://www.stress-free.co.nz"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>stressfree - java</title>
 <link>https://www.stress-free.co.nz/tech/java</link>
 <description></description>
 <language>en</language>
<item>
 <title>Developer paths beyond the Visual Studio juggernaut</title>
 <link>https://www.stress-free.co.nz/developer_paths_beyond_the_visual_studio_juggernaut</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;blockquote&gt;
&lt;p&gt;I have just purchased a Mac laptop and am planning to partition it to run OSX and Ubuntu. Currently I use Microsoft Visual Studio on Windows for development projects. My concern is whether there is an equivalent to Visual Studio and the Microsoft Developer Network (MSDN) on OS X or Ubuntu?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;image&quot; style=&quot;margin-top: 15px; margin-bottom: 15px;&quot;&gt;&lt;img src=&quot;/sites/default/files/u63/macbook.jpg&quot; alt=&quot;&quot; width=&quot;190&quot; height=&quot;112&quot; /&gt;&lt;/div&gt;
&lt;p&gt;Today I was asked this question, one which is very similar to others I have been asked and answered in the past. In Windows the decisions a developer must make prior to starting coding are relatively simple because it is an environment dominated by Visual Studio. When making the move to OSX or Linux the decisions facing the developer are more complicated because no single company dominates these platforms in the same way Microsoft does Windows.&lt;/p&gt;
&lt;p&gt;Outside of this Microsoft’s sphere of influence is a large number of avenues to consider which can significantly influence the productivity and even success, of your software project. The short answer is there no direct equivalent to Visual Studio and MSDN for OSX or Ubuntu, but there are plenty of satisfactory alternatives. In making your decision consider what languages you use now, or are interested in learning in the future. Also identify what general platform you wish to develop for; be it the desktop, server, web or mobile. And always remember whilst none of these discussed paths are wrong, some are more right than others depending on the project.&lt;/p&gt;
&lt;!--break--&gt;
&lt;h2&gt;Mono - The Cross-Platform Windows .Net Framework&lt;/h2&gt;
&lt;p&gt;For a developer used to Microsoft’s .Net framework and C# or Visual Basic, the easiest place to start is Mono. Mono is an open source implementation of the .Net Common Language Runtime (CLR) which can run on OSX and Linux. With Mono you program using the C# and Visual Basic syntax you are used to, but the compiled binary executes on OSX and Linux.&lt;/p&gt;
&lt;p&gt;Unfortunately because the Mono team is a re-implementing an existing framework they are always one step behind what is available on Windows. For example the current 2.2 release supports the language features of version 2.0 of the .Net framework. Consequently you cannot take advantage of the new features in the .Net 3.0 until version 3.0 of Mono is released, which may take a while to materialise. Another thing to keep in mind is that many of the supporting libraries found in Windows .Net maybe different or unavailable in Mono. This is largely due to Mono&#039;s cross-platform nature and the fact .Net leverages many Windows-only libraries that will never be ported to other platforms.&lt;/p&gt;
&lt;p&gt;Whilst the Mono runtime is very mature and compares well to its Windows equivalent, the development environment and community is not nearly as strong. Compared to Microsoft&#039;s Visual Studio the Mono Develop Integrated Development Environment (&lt;a href=&quot;http://en.wikipedia.org/wiki/Integrated_development_environment&quot;&gt;IDE&lt;/a&gt;) is significantly behind in terms of functionality and polish. In time this situation will improve, but for the foreseeable future those making the jump from Visual Studio to Mono Develop will be very disappointed. This is not to say that development in Mono Develop is impossible, it is just that nearly all of Visual Studio&#039;s handholding and helper tools are not yet present.&lt;/p&gt;
&lt;p&gt;In terms of an online developer community, Mono&#039;s is small compared to alternative open source languages such as Java, Ruby, Python and PHP. However Mono developers can benefit from its .Net lineage by leveraging the wealth of MSDN documentation available for C#, Visual Basic and Windows Forms. When doing so it is important to keep in mind the practical differences between Mono and .Net, as whilst the syntax is generally the same, the tools and supporting libraries used may differ substantially.&lt;/p&gt;
&lt;h2&gt;Java - A Mature Cross-Platform Environment&lt;/h2&gt;
&lt;p&gt;When talking cross-platform development Java is the ten-thousand pound gorilla in the room. Whilst technically not the first cross-platform programming environment, Sun’s marketing department popularised the concept of &quot;write once, run anywhere&quot; during the 1990s. This was later referred to as “write once, debug everywhere” by Java’s detractors. Like C# and the .Net CLR, Java is both a language and a runtime environment, in fact Microsoft “borrowed” many of Java concepts when developing .Net. The major benefit of Java is that the environment and community around it is very large and mature. Unfortunately this is a double edged sword; on one hand this means there is a wealth of tools and support available, but on the other the options are so varied and complicated the learning curve can be extreme at times.&lt;/p&gt;
&lt;p&gt;Like .Net, Java is an excellent environment to learn if you are unsure of what platform, be it desktop, web or mobile, you wish to write applications for. Whilst each platform has its own mannerisms and libraries to learn, many of the underlying concepts and tools can be universally applied. Again this has its own benefits and drawbacks. From a career perspective Java is ubiquitous and no matter what the problem space or context, it can almost certainly be put to use. Unfortunately this diversity has lead to a lot of coding inefficiencies when compared to a language dedicated to a certain problem space or context. The most prominent case of this in recent times has been the meteoric rise in popularity of &lt;a href=&quot;http://rubyonrails.org/&quot;&gt;Ruby on Rails&lt;/a&gt; amongst Java developers.&lt;/p&gt;
&lt;p&gt;When it comes to Java development tools there are plenty of good ones to choose from, for example &lt;a href=&quot;http://www.eclipse.org/&quot;&gt;Eclipse&lt;/a&gt;, &lt;a href=&quot;http://www.netbeans.org/&quot;&gt;NetBeans&lt;/a&gt; and &lt;a href=&quot;http://www.jetbrains.com/idea/&quot;&gt;IntelliJ&lt;/a&gt;. All three compare very favorably to Visual Studio in terms of features and developer community support. Personally I use NetBeans as it has a very good &#039;out of the box&#039; experience and has excellent support for Java web development and languages such as &lt;a href=&quot;http://www.netbeans.org/ruby/&quot;&gt;Ruby&lt;/a&gt; and &lt;a href=&quot;http://www.netbeans.org/features/php/&quot;&gt;PHP&lt;/a&gt;. Eclipse is the most widely used Java IDE and has a vast number of third-party extensions that add &lt;a href=&quot;http://www.plentyofcode.com/2007/07/most-useful-top-50-eclipse-plug-ins.html&quot;&gt;a huge amount of functionality&lt;/a&gt;. However Eclipse&#039;s depth can be problematic as its default installation is minimal and its extensibility often poses more questions than it answers. As a result setting up your ideal development environment can take some time. IntelliJ, unlike Eclipse and Netbeans, is not open source and requires the purchase of a software license. This initial cost is outweighed in a commercial environment by its teamwork functionality and support provided. However in a single developer environment justifying this purchase when both Eclipse and NetBeans are free and so powerful is in my view much more difficult.&lt;/p&gt;
&lt;h2&gt;Other Languages on the Java VM&lt;/h2&gt;
&lt;p&gt;Whilst it has always been technically possible to run languages other than Java on the Java Virtual Machine (VM), it is only recently that this has become mainstream. Now a slew of modern, popular languages can be used within the Java VM such as &lt;a href=&quot;http://jruby.codehaus.org/&quot;&gt;JRuby&lt;/a&gt; (Ruby), &lt;a href=&quot;http://www.jython.org&quot;&gt;Jython&lt;/a&gt; (Python), &lt;a href=&quot;http://www.mozilla.org/rhino/&quot;&gt;Rhino&lt;/a&gt; (Javascript), &lt;a href=&quot;http://groovy.codehaus.org/&quot;&gt;Groovy&lt;/a&gt;, &lt;a href=&quot;http://www.scala-lang.org/&quot;&gt;Scala&lt;/a&gt; and &lt;a href=&quot;http://clojure.org/&quot;&gt;Clojure&lt;/a&gt;. This rapid growth in JVM compatible languages has in turn been reflected in multiple language support within the Java IDEs. As a consequence some of the best IDEs for writing Ruby, Python and Javascript code are now Eclipse, Netbeans and IntelliJ.&lt;/p&gt;
&lt;p&gt;In a similar way to .Net and Mono, the difference between the Java version of a language and its native equivalent (e.g. JRuby &amp;lt;=&amp;gt; Ruby) is its ability to leverage supporting libraries. Generally the majority of the language syntax is the same, but whilst Ruby can leverage a system’s C libraries, JRuby has access to those within the Java VM. In these cases this can lead to significant coding differences, but if you write an application using only core Ruby libraries there is a very strong chance it will &lt;a href=&quot;http://blog.headius.com/2006/07/rails-114-runs-unmodified-in-jruby.html&quot;&gt;run unmodified&lt;/a&gt; on both the Ruby and JRuby runtime environments.&lt;/p&gt;
&lt;h2&gt;Objective-C, Cocoa and Carbon&lt;/h2&gt;
&lt;p&gt;Writing cross-platform is a nice idea, but there are considerable benefits to be gained by targeting a specific platform. &lt;a href=&quot;http://en.wikipedia.org/wiki/Objective-C&quot;&gt;Objective-C&lt;/a&gt; is not an OSX specific language, but it has gained notoriety thanks to its close relationship to the OSX Cocoa framework and its associated user interface functionality.&lt;/p&gt;
&lt;p&gt;Whilst the &lt;a href=&quot;http://en.wikipedia.org/wiki/Cocoa_(API)&quot;&gt;Cocoa framework&lt;/a&gt; is available on a variety of platforms, it is most well known for its OSX implementation where Apple has injected a considerable amount of additional functionality. Unfortunately much of this functionality relies on libraries present only within OSX, and as a result the cross-platform, open source implementation of Cocoa, &lt;a href=&quot;http://www.gnu.org/software/gnustep/&quot;&gt;GNUstep&lt;/a&gt;, is viewed by many as its poor cousin. For a good discussion of Cocoa, OSX and GNUstep checkout the &lt;a href=&quot;http://methodsandmessages.vox.com/library/post/floss-weekly---gnustep.html&quot;&gt;interview with a couple of GNUstep developers&lt;/a&gt; on FLOSS Weekly.&lt;/p&gt;
&lt;p&gt;The other significant development framework on OSX is Carbon, but this is primarily intended as a compatibility library between the &quot;classic&quot; MacOS and OSX. Any new development should be undertaken in Cocoa simply because this is where all the action is. Plus, if Apple stays true to form, support for Carbon will cease in the not too distant future.&lt;/p&gt;
&lt;p&gt;As far as development environments go the OSX-only &lt;a href=&quot;http://developer.apple.com/TOOLS/xcode/&quot;&gt;XCode&lt;/a&gt; from Apple is far and away the best IDE for developing in Objective-C and Cocoa. XCode and its accompanying tools are shipped free as part of OSX, plus there is a large developer community and &lt;a href=&quot;http://developer.apple.com/&quot;&gt;Apple Developer Connection&lt;/a&gt; (ADC) to call on for support. Paid membership to ADC can be expensive depending on your needs, but like MSDN this grants you improved access to Apple’s internal development processes and pre-release software. Unfortunately on other platforms such as Ubuntu the tooling for Cocoa and Objective-C is not so strong. GNUstep has the &lt;a href=&quot;http://www.gnu.org/software/gnustep/experience/ProjectCenter.html&quot;&gt;ProjectCenter IDE&lt;/a&gt;, but this does not compare well to Visual Studio, Java IDEs or XCode in terms of its functionality or polish.&lt;/p&gt;
&lt;h2&gt;Life without an IDE - Text Editors and Command Lines&lt;/h2&gt;
&lt;p&gt;Whilst it may sound strange for someone used to operating within Visual Studio&#039;s padded walls, some of the best cross-platform development environments you can create yourself using a text editor and command line tools. Unlike C# and Java, languages such as Ruby and Python have grown to where they are now without significant support from complex IDEs. Learning a new language using these limited tools can also prove beneficial because you are not shielded from a language’s complexities by a &quot;helpful&quot; IDE. The end result is you gain a much better understanding of a language and its runtime environment than you would if you were to continually rely on an IDE’s wizards.&lt;/p&gt;
&lt;p&gt;When using such an approach it is easy to move between different operating systems because each has an excellent suite of text editors. On OSX this choice ranges from the free &lt;a href=&quot;http://www.barebones.com/products/TextWrangler/&quot;&gt;TextWrangler&lt;/a&gt; through to the moderately expensive &lt;a href=&quot;http://macromates.com/&quot;&gt;TextMate&lt;/a&gt;. As far as Linux goes it really depends on your operating environment (Gnome, KDE, etc) and preference for GUI or command line tools. Needless to say like most things open source, there are extensive and &lt;a href=&quot;http://en.wikipedia.org/wiki/Editor_war&quot;&gt;intense debates&lt;/a&gt; about the pros and cons of various text editors.&lt;/p&gt;
&lt;h2&gt;Version Control is the Key&lt;/h2&gt;
&lt;p&gt;No matter what language or development approach you choose the most important to setup and use is some form of &lt;a href=&quot;http://en.wikipedia.org/wiki/Revision_control&quot;&gt;version control&lt;/a&gt;. Systems like &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; or &lt;a href=&quot;http://git-scm.com/&quot;&gt;Git&lt;/a&gt; make it easy for developers to move between OSX, Linux and Windows without having to worry about shared filesystems. There some very good GUI tools for version control management, for example the tools built into Java IDEs and standalone applications such as &lt;a href=&quot;http://versionsapp.com/&quot;&gt;Versions&lt;/a&gt; (OSX only) and &lt;a href=&quot;http://rapidsvn.tigris.org/&quot;&gt;RapidSVN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Version control is especially important in cross-platform development because no matter how hard you try, chances are you will inadvertently introduce a bug that affects one or more of your target platforms. When this happens it is important that you can quickly find out what was changed, or what changed on your target platform, and work up a patch. This may involve reverting to a previous version of your code, or creating a platform specific branch.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Unlike the .Net/Visual Studio dominated world of Windows the choices available to a developer on OSX and Linux are many and varied. There is certainly no right answer, but more often than not there is one language that fits the problem space or context you are working in better than others. Personally I prefer the breadth and depth of the Java development world. Not only is arguably the most cross-platform, but it also has a strong developer community and tooling that is on par with, and at times better than, Visual Studio.&lt;/p&gt;
&lt;p&gt;Unfortunately if it is a desktop application you wish to develop, Java is in a state of flux until JavaFX gains more adoption and is released on platforms other than Windows. With this in mind the functionality offered from Mono and its WinForms implementation is hard to pass by, even if the tooling support available in Mono Develop is immature at present.&lt;/p&gt;
&lt;p&gt;Perhaps the most difficult development decisions arise if you wish to develop for mobile devices. In terms of a lucrative market the iPhone with its Cocoa framework is hard to ignore. However a version of Java, be it &lt;a href=&quot;http://java.sun.com/javame/index.jsp&quot;&gt;Micro Edition&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/Dalvik_virtual_machine&quot;&gt;Dalvik&lt;/a&gt;, is available on most other mobile devices. Fortunately I am not a developer in this space, but if I were I would probably take the iPhone route given its proven market. This being said I would keep a close eye on the growth of &lt;a href=&quot;http://code.google.com/android/&quot;&gt;Android&lt;/a&gt; as its openness may prove the winner in the long-term.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;  &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/tech/java&quot;&gt;java&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/ruby&quot;&gt;ruby&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/software_development&quot;&gt;software development&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/open_source&quot;&gt;open source&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/python&quot;&gt;python&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/net&quot;&gt;.net&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/mono&quot;&gt;mono&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Mon, 23 Feb 2009 06:33:02 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">537 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>SpringSource tc Server: The right product at the right time</title>
 <link>https://www.stress-free.co.nz/springsource_tc_server_the_right_product_at_the_right_time</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;img src=&quot;/sites/default/files/u63/springsource-logo.jpg&quot; alt=&quot;&quot; width=&quot;130&quot; height=&quot;52&quot; /&gt;&lt;/div&gt;
&lt;p&gt;Releasing a new product into one of the worst economic climates ever would generally be considered a bad move, but for &lt;a id=&quot;yz2y&quot; title=&quot;SpringSource&quot; href=&quot;http://www.springsource.com/&quot;&gt;SpringSource&lt;/a&gt; it may prove a master stroke. Recently they announced that early next year (Jan/Feb) version 1.0 of &lt;a id=&quot;ieut&quot; title=&quot;tc Server&quot; href=&quot;http://www.springsource.com/node/897&quot;&gt;tc Server&lt;/a&gt;, a fully supported, business-friendly edition of &lt;a id=&quot;eg61&quot; title=&quot;Tomcat 6.0&quot; href=&quot;http://tomcat.apache.org/&quot;&gt;Tomcat 6.0&lt;/a&gt;, will be available. For those in the Java world Tomcat is the first port of call when developing or deploying web applications. This is because it is free (open source), lightweight and relatively easy to use compared to the Java application server competition; &lt;a id=&quot;shf7&quot; title=&quot;JBoss&quot; href=&quot;http://www.jboss.org/jbossas/&quot;&gt;JBoss&lt;/a&gt;, &lt;a id=&quot;d3yk&quot; title=&quot;GlassFish&quot; href=&quot;http://glassfish.dev.java.net/&quot;&gt;GlassFish&lt;/a&gt;, &lt;a id=&quot;le-b&quot; title=&quot;WebLogic&quot; href=&quot;http://www.bea.com/framework.jsp?CNT=index.htm&amp;amp;FP=/content/products/weblogic/&quot;&gt;WebLogic&lt;/a&gt; and &lt;a id=&quot;zxeu&quot; title=&quot;WebSphere&quot; href=&quot;http://www-01.ibm.com/software/webservers/appserv/was/&quot;&gt;WebSphere&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;centeredimage&quot;&gt;&lt;a href=&quot;http://www.springsource.com/node/897&quot;&gt;&lt;img src=&quot;/sites/default/files/u63/tc-server-diagram.jpg&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;177&quot; /&gt;&lt;br /&gt;SpringSource&#039;s own diagramattic positioning of tc Server&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Unfortunately when compared to alternatives Tomcat has never been as well supported in the role of mission critical, business server. JBoss does support Tomcat so that it can fulfill the role of servlet engine for their application server, but most will acknowledge the two are quite different beasts. Other companies ship Tomcat as part of their products, for example &lt;a id=&quot;br1w&quot; title=&quot;Novell&quot; href=&quot;http://developer.novell.com/wiki/index.php/Tomcat_for_Novell_Services&quot;&gt;Novell&lt;/a&gt; and &lt;a id=&quot;tnj5&quot; title=&quot;Alfresco&quot; href=&quot;http://www.alfresco.com/&quot;&gt;Alfresco&lt;/a&gt;, but in these cases support is of a token nature and generally extends only to how the company&#039;s own software runs within it. So in this cloudy support and economic environment it is easy to see why SpringSource is moving to offer a supported, business-friendly edition of Tomcat.&lt;/p&gt;
&lt;!--break--&gt;
&lt;h2&gt;Why is the inferior Tomcat better than the competition?&lt;/h2&gt;
&lt;p&gt;Without significant marketing Tomcat has become &lt;a id=&quot;g6m2&quot; title=&quot;more prevalent than its competition&quot; href=&quot;http://www.informationweek.com/news/software/open_source/showArticle.jhtml?articleID=204701768&quot;&gt;more prevalent than its competition&lt;/a&gt; through simplicity and availability. Compared to alternatives it has managed to stay trim and easy to use by staying clear of all the inherit complexities of the &lt;a href=&quot;/&quot;&gt;Java EE specification&lt;/a&gt;. Instead the development team has focused on being the best Java servlet/JSP container, and let adoption handle itself.&lt;/p&gt;
&lt;p&gt;For those not versed in Java understanding the difference between Tomcat and a full blooded Java EE server is a challenge. In a nutshell Tomcat focuses on a small, but significant, portion of the specification, for example it does not internally implement JMS messaging, web services or persistence (EJB). This does not mean similar functionality cannot be added to Tomcat, but as a developer it must be assumed these things are not present. This may seem like a drawback but it has proven to be advantageous given the torrid history of Java EE, which only recently has delivered promised developer productivity benefits. In the meantime Tomcat-compatible frameworks such as &lt;a id=&quot;f_tt&quot; title=&quot;Spring&quot; href=&quot;http://www.springframework.org/&quot;&gt;Spring&lt;/a&gt;, &lt;a id=&quot;ctzy&quot; title=&quot;Hibernate&quot; href=&quot;http://www.hibernate.org/&quot;&gt;Hibernate&lt;/a&gt;, &lt;a id=&quot;e1wy&quot; title=&quot;Axis&quot; href=&quot;http://ws.apache.org/axis2/&quot;&gt;Axis&lt;/a&gt; and &lt;a id=&quot;xxu9&quot; title=&quot;CXF&quot; href=&quot;http://cxf.apache.org/&quot;&gt;CXF&lt;/a&gt; have emerged which embody many of the practical characteristics of Java EE without the complexity. So whilst Tomcat cannot claim to be a full-blown application server, it can for most purposes practically act like one.&lt;/p&gt;
&lt;h2&gt;If Tomcat is so good why do businesses need SpringSource?&lt;/h2&gt;
&lt;p&gt;Tomcat is used extensively in business today but the general level of expertise available in the market is limited. This can partly be attributed to the excellent job Tomcat developers do in shipping a production quality product. Unfortunately there is a significant step up between using Tomcat at a small scale and having it run business critical applications 24/7. Attaining this level requires a significant investment in time by the internal I.T. department, or migration to a fully supported application server like the ones referred to earlier. SpringSource are aiming to provide a third alternative by packaging their experience in Tomcat performance optimisation, management, clustering and monitoring into an easy to use and well supported product. The benefit of this is that businesses can continue to rely upon their existing Tomcat investment without having to commit significant internal resources, or worse, migrate to a different application server platform.&lt;/p&gt;
&lt;h2&gt;How are SpringSource delivering on this?&lt;/h2&gt;
&lt;p&gt;In recent months SpringSource have announced two separate (but related) products, &lt;a id=&quot;cfz0&quot; title=&quot;tc Server&quot; href=&quot;http://www.springsource.com/node/897&quot;&gt;tc Server&lt;/a&gt; and &lt;a id=&quot;gq63&quot; title=&quot;dm Server&quot; href=&quot;http://www.springsource.com/products/suite/dmserver&quot;&gt;dm Server&lt;/a&gt;. In a nutshell tc Server is does not change Tomcat, whilst dm Server is a heavily modified, &lt;a id=&quot;ht3g&quot; title=&quot;OSGi compatible&quot; href=&quot;http://www.osgi.org/Main/HomePage&quot;&gt;OSGi compatible&lt;/a&gt; variation that solves the long running problem of &lt;a id=&quot;mq:2&quot; title=&quot;JAR hell&quot; href=&quot;http://en.wikipedia.org/wiki/JAR_hell#JAR_hell&quot;&gt;JAR hell&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Okay you lost me, OSGi and JAR what?&lt;/h2&gt;
&lt;p&gt;Unlike .Net the Java web platform is not dominated by a single, all powerful company such as Microsoft. Sun certainly exerts control over the Java language, but the majority of commonly used libraries are contributed by third parties, either working independently, or towards an agreed upon specification (&lt;a id=&quot;rd2x&quot; title=&quot;a JSR&quot; href=&quot;http://jcp.org/en/jsr/overview&quot;&gt;JSR&lt;/a&gt;). This distributed lineage has created a complicated dependency problem often referred to as JAR hell. This is where applications or third-party code requires similar, but incompatible library files. Not only does this complicate development but it also causes serious headaches when it comes to deployment.&lt;/p&gt;
&lt;p&gt;To combat this problem three initiatives have emerged which are functionality similar to &lt;a id=&quot;t.8d&quot; title=&quot;Ruby&#039;s gem&quot; href=&quot;http://en.wikipedia.org/wiki/RubyGems&quot;&gt;Ruby&#039;s gem&lt;/a&gt; or &lt;a id=&quot;o413&quot; title=&quot;Linux&#039;s apt&quot; href=&quot;http://en.wikipedia.org/wiki/Advanced_Packaging_Tool&quot;&gt;Linux&#039;s apt&lt;/a&gt; package management. The first, &lt;a id=&quot;bgz3&quot; title=&quot;Maven&quot; href=&quot;http://maven.apache.org/&quot;&gt;Maven&lt;/a&gt; is a tool-set that goes a long way towards resolving a developer&#039;s immediate issues. In the long-term Sun is undertaking &lt;a id=&quot;jvee&quot; title=&quot;Project Jigsaw&quot; href=&quot;http://blogs.sun.com/mr/entry/jigsaw&quot;&gt;Project Jigsaw&lt;/a&gt; which will hopefully become an integral part of &lt;a id=&quot;lse0&quot; title=&quot;part of Java 7&quot; href=&quot;http://today.java.net/pub/a/today/2007/08/09/looking-ahead-to-java-7.html&quot;&gt;Java 7&lt;/a&gt;. In the meantime to address problems in production environments the &lt;a id=&quot;dxz1&quot; title=&quot;OSGi Alliance&quot; href=&quot;http://en.wikipedia.org/wiki/OSGi&quot;&gt;OSGi Alliance&lt;/a&gt; has developed a framework for library management. IBM, Oracle, Sun and JBoss all &lt;a id=&quot;fivw&quot; title=&quot;plan or have implemented&quot; href=&quot;http://www.infoq.com/news/2008/02/osgi_jee&quot;&gt;plan or have implemented&lt;/a&gt; OSGi support, whilst SpringSource&#039;s dm Server is the first derivative of Tomcat to support it.&lt;/p&gt;
&lt;p&gt;The problem with OSGi is that it requires considerable changes to the way applications are developed and deployed. As a result whilst OSGi seems the obvious long-term answer, most businesses are more interested in deploying their existing, non-OSGi compliant applications. Given this landscape SpringSource&#039;s strategy is to gain immediate market share with the conventional tc Server, and then be in a position to capture a share of the OSGi market with dm Server.&lt;/p&gt;
&lt;h2&gt;What is the secret &quot;source&quot; in tc Server?&lt;/h2&gt;
&lt;p&gt;It is very difficult to sell support for a single open source project that has a strong community like Tomcat&#039;s. Generally commercial support is only perceived as valuable if it covers a range of projects (&lt;a id=&quot;kxcs&quot; title=&quot;Red Hat&quot; href=&quot;http://www.redhat.com/&quot;&gt;Red Hat&lt;/a&gt;), or the company has a single, controlling stake in the future of the project (&lt;a id=&quot;kr7i&quot; title=&quot;Alfresco&quot; href=&quot;http://www.alfresco.com/&quot;&gt;Alfresco&lt;/a&gt;). If neither of these conditions are met then the business must provide an extra layer of valuable functionality. SpringSource are not breaking this rule, and plan to add the following to their Tomcat distribution:&lt;/p&gt;
&lt;h3&gt;Performance patches and tuning&lt;/h3&gt;
&lt;p&gt;Parts of Tomcat are quite conservative and rather old. SpringSource are significant Tomcat contributors and have developed patches to address less &lt;a id=&quot;l.x9&quot; title=&quot;performant&quot; href=&quot;http://boulter.com/blog/2004/08/19/performant-is-not-a-word/&quot;&gt;performant&lt;/a&gt; parts of the code. Added to this their experience has given them unique insight into how Tomcat can be tuned to operate at peak efficiency during various demanding scenarios.&lt;/p&gt;
&lt;h3&gt;Server and Cluster management interfaces&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;The Tomcat development team has never invested serious time in tools that ease server or cluster management. A basic administration tool does come with Tomcat, but it is one of the first things deleted given its limited functionality. SpringSource are aiming to rectify this with a set of management tools that ease setup and configuration of standalone or clustered Tomcat instances. Versioned configuration and scheduled changes are planned, but whether this will be available in the 1.0 release is uncertain.&lt;/p&gt;
&lt;h3&gt;The Application Monitoring Suite (AMS)&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;Prior to tc Server, SpringSource developed the &lt;a id=&quot;lg-5&quot; title=&quot;Application Monitoring Suite&quot; href=&quot;http://www.springsource.com/products/suite/ams&quot;&gt;Application Monitoring Suite&lt;/a&gt;, a Spring-centric monitoring and analytics system built on top of &lt;a id=&quot;v:lt&quot; title=&quot;Hyperic&quot; href=&quot;http://www.hyperic.com/&quot;&gt;Hyperic&lt;/a&gt;. In practical-terms it allows developers and system administrators to monitor a running Spring application at a very low level. The suite takes all the guesswork out of troubleshooting and can automatically respond to, or alert others of, events within the system.&lt;/p&gt;
&lt;div class=&quot;centeredimage&quot;&gt;&lt;a href=&quot;/sites/default/files/u63/tc-server-ams_lg.jpg&quot;&gt; &lt;img src=&quot;/sites/default/files/u63/tc-server-ams_sm.jpg&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;221&quot; /&gt;&lt;br /&gt;SpringSource AMS in action (click to enlarge) &lt;/a&gt;&lt;/div&gt;
&lt;p&gt;SpringSource intend to leverage this comprehensive monitoring tool-set during tc Server support incidents. Anyone that has tried to remotely troubleshoot a Tomcat problem will understand what an edge this gives the SpringSource engineers. As a consequence businesses will feel comfortable their support requests can be efficiently addressed, even if the engineer is on another continent.&lt;/p&gt;
&lt;p&gt;From an operations perspective having monitoring built-in to tc Server is a great time and resource saver. For many monitoring is one of those New Year&#039;s resolutions that never quite eventuates. However once in place the statistics generated are invaluable, and the peace of mind knowing everything is working within defined parameters lets everyone sleep easy at night.&lt;/p&gt;
&lt;h2&gt;What will this cost?&lt;/h2&gt;
&lt;p&gt;Whilst the final price has not been confirmed, &lt;a id=&quot;zmd2&quot; title=&quot;this blog post&quot; href=&quot;http://blog.springsource.com/2008/12/04/the-cat-is-out-of-the-bag-%E2%80%93-tc-server-announced/&quot;&gt;this blog post&lt;/a&gt; suggests tc Server will be priced at US$500 per CPU per year. This is no doubt the base price and different support-tiers and discounts will be factored into the mix at release. If $500 is correct then this would appear to be a very good deal considering the functionality delivered and the cost of competing Java application servers. Plus from a cost/benefit standpoint businesses would not need to invest in an in-house Tomcat expert, or undertake a complicated migration to a completely foreign, but supported, server platform. Hence once these costs are factored in it may well turn out that adopting tc Server actually saves the company money over the long-term.&lt;/p&gt;
&lt;h2&gt;If SpringSource can execute they could win big&lt;/h2&gt;
&lt;p&gt;These recent Tomcat-based server announcements are shaping up to be very compelling product offerings. Given the changing face of the Java application server landscape and SpringSource&#039;s reputation, both tc and dm Server stand strong chances of success. What is really interesting to watch is key pieces of a long-term strategy fall into place. Spring has captured a significant amount of developer mind-share and their Application Monitoring Suite illustrated they are serious about production environments. It would seem these new servers are building on these strong foundations, and in the process turning SpringSource from small-time developer of tools into a serious competitor within the Java application server marketplace.&lt;/p&gt;
&lt;h4&gt;For more information on SpringSource tc Server &lt;a href=&quot;http://www.springsource.com/node/1116&quot;&gt;checkout this webinar&lt;/a&gt;.&lt;/h4&gt;
&lt;p&gt; &lt;/p&gt;  &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/tech/java&quot;&gt;java&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/web_services&quot;&gt;web services&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Sun, 14 Dec 2008 05:52:20 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">533 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>Google outflanks Sun with Android</title>
 <link>https://www.stress-free.co.nz/google_outflanks_sun_with_android</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;img src=&quot;https://www.stress-free.co.nz/sites/default/files/u63/android_logo.jpg&quot; title=&quot;undefined&quot; width=&quot;170&quot; height=&quot;62&quot; /&gt;&lt;/div&gt;
&lt;p&gt;Google recently released the highly anticipated &lt;a href=&quot;http://code.google.com/android/&quot;&gt;Android mobile phone platform&lt;/a&gt; to developers. Android promises to be a more consistent and powerful environment for mobile applications compared to what currently exists in the fragmented mobile market. Whilst many people were disappointed that Android was not a Google-branded iphone; from a developers perspective if it can gain broad adoption it will make the developing powerful, Internet-centric mobile applications significantly easier.&lt;/p&gt;
&lt;p&gt;One of the most interesting aspects of Android is that it is released under the &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0.html&quot;&gt;Apache v2 software license&lt;/a&gt;. This license grants obligation-free use of the code to any party. This is different to other popular open-source licenses like the GPL which requires source-code modifications to be made publically available. In the competitive mobile phone market such an obligation is problematic which is why Sun releases the &lt;a href=&quot;http://java.sun.com/javame/&quot;&gt;Java Mobile Edition (ME)&lt;/a&gt; under different open and closed source licenses.&lt;/p&gt;
&lt;p&gt;A question that was hanging around Android was how Google had managed to release a Java mobile platform under the Apache license given that the licenses Sun release JavaME under are not compatible. &lt;a href=&quot;http://www.betaversion.org/~stefano/linotype/news/110/&quot;&gt;Stefano Mazzocchi points out on his blog&lt;/a&gt; that Google have outflanked Sun by releasing a platform that supports the Java language but does not use Sun&amp;#39;s Java compiler or the Java byte-code at its core. Instead Google have created &lt;a href=&quot;http://code.google.com/android/what-is-android.html&quot;&gt;Dalvik&lt;/a&gt;, a virtual machine released under the Apache license which understands how to compile Java source code into its own byte-code for execution.&lt;/p&gt;
&lt;p&gt;This move outflanks Sun&amp;#39;s licensing policies, essentially cutting them out of the Android equation. It is a gutsy move by Google but it does free them to focus on developing a platform they have complete control over rather than working in partnership with Sun. From the perspective of Java as a language this move wouldn&amp;#39;t seem to pose any problems as the mobile and desktop/server worlds have always been quite distinct. Plus if anything Google&amp;#39;s use of the &lt;a href=&quot;http://harmony.apache.org/&quot;&gt;Apache Harmony JavaSE libraries&lt;/a&gt; may actually make developing for the mobile and desktop more consistent than Sun&amp;#39;s distinct JavaME and JavaSE implementations.&lt;/p&gt;
&lt;p&gt;All things considered this news has made Android more interesting from my perspective. Before I heard this it was just another JavaME implementation but now it sounds like Google will have the capability to do some really interesting things. What has yet to be seen is what level of support (if any) this platform will have on the iPhone. Google and Apple have a strong relationship there and it would seem like Dalvik runtime would be a natural fit on the device if it is lightweight, fast and provides developers with the ability to write applications for both Android and the iPhone. &lt;/p&gt;
&lt;!--break--&gt;  &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/tech/linux&quot;&gt;linux&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/java&quot;&gt;java&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/mobile&quot;&gt;mobile&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Tue, 13 Nov 2007 23:44:44 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">472 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>Comparing Web Development with Java and .Net</title>
 <link>https://www.stress-free.co.nz/comparing_web_development_with_java_and_net</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;p&gt;I was recently asked to comment on what the pros and cons were of Java compared to ColdFusion and ASP.Net when it comes to Web development. I guess the first thing to get straight with this question is what exactly constitutes &#039;Java&#039; in a Web development sense. &lt;/p&gt;&lt;h2&gt;The basics of the two technologies &lt;/h2&gt;&lt;p&gt;The diagram below outlines the elements that comprise of Java and .Net Web development. &lt;/p&gt;&lt;div class=&quot;centeredimage&quot;&gt;&lt;a href=&quot;/sites/default/files/u63/diagram-java-net_sm.png&quot;&gt;&lt;img src=&quot;/sites/default/files/u63/diagram-java-net_sm.png&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;266&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Both technologies are very similar as in essence Microsoft based .Net on many of Sun&#039;s original Java concepts and borrowed a lot of Java syntax when designing C#. Both utilise managed containers in which code is compiled and executed within. These containers are referred to as the JavaVM or CLR runtime in Java and .Net respectively. Both managed containers have the ability to execute code written in a number of languages, for example it is not uncommon to have a .Net application written in both VB.Net and C#. Whilst not as common the Java runtime is also beginning to support multiple languages such as  &lt;a href=&quot;http://www.jython.org/&quot;&gt;Python&lt;/a&gt; and &lt;a href=&quot;http://jruby.codehaus.org/&quot;&gt;Ruby&lt;/a&gt;. Increased emphasis has come on this ability after the meteoric rise to fame of the &lt;a href=&quot;http://www.rubyonrails.org/&quot;&gt;Ruby on Rails&lt;/a&gt; Web development framework.&lt;/p&gt;&lt;p&gt;&lt;!--break--&gt;Looking at the diagram above you will notice that ColdFusion falls within the domain of Java. Whilst the language itself does not look very similar to Java this is just aesthetic, under the hood ColdFusion code is compiled into Java by the ColdFusion interpreter and then executed in the same manner as standard Java code. So any debate between whether to use ColdFusion or Java Server Pages (JSP) really boils down to what the developer is familiar with. &lt;/p&gt;&lt;h2&gt;Industry Support&lt;/h2&gt;&lt;p&gt;Java and .Net share extensive industry support and broad user bases. As &lt;a href=&quot;http://radar.oreilly.com/archives/2006/08/programming_language_trends_1.html&quot;&gt;shown by the O&#039;Reilly analysis&lt;/a&gt; of reference book sales no single programming language has a clear lead when it comes to popularity.&lt;/p&gt;&lt;div class=&quot;centeredimage&quot;&gt;&lt;a href=&quot;http://radar.oreilly.com/archives/2006/08/programming_language_trends_1.html&quot;&gt;&lt;img src=&quot;/sites/default/files/u63/orielly_programming_trends.png&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;256&quot; /&gt;&lt;br /&gt;Programming reference book sales (image from O&#039;Reilly)&lt;/a&gt;&lt;/div&gt;&lt;p&gt;.Net&#039;s greatest advantage is that being a Microsoft technology it is integrated within the Windows Server family of products and installed on the majority of corporate desktops. Microsoft also has a strong history of excellent developer tools which enables the relatively rapid development of .Net applications via the &lt;a href=&quot;http://msdn.microsoft.com/vstudio&quot;&gt;Visual Studio suite&lt;/a&gt;. Whilst Microsoft&#039;s .Net framework is proprietary code that only runs on Windows, the &lt;a href=&quot;http://www.mono-project.com/&quot;&gt;Mono project&lt;/a&gt; (sponsored by Novell) is successfully implementing the API&#039;s and CLR runtime standards in open source code capable of being deployed on a range of platforms such as Linux and OSX. However it must be noted at this stage Mono does not cover 100% of the .Net API&#039;s or support the .Net 2.0 standard, limiting its applicability as a production level .Net platform.  &lt;/p&gt;&lt;p&gt;Java development whilst lead by Sun is also extensively supported by industry heavyweights such as IBM and Google and a range of smaller but no less important entities, the most famous of which being the &lt;a href=&quot;http://www.apache.org/&quot;&gt;Apache Software Foundation&lt;/a&gt;. Recently Sun announced they would be &lt;a href=&quot;http://www.sun.com/2006-1113/feature/&quot;&gt;open sourcing core Java technologies&lt;/a&gt; under the GPL. A significant benefit of this move is that it will allow Java to be tightly integrated into Linux distributions, easing deployment burdens for IT administrators. Unlike the one size fits all approach favored by .Net, Java is broken into a range of different frameworks which can be combined together to generate a unique set of functionality. This design also enables third parties to develop languages like ColdFusion that allow developers to utilise the power of many J2EE technologies without the added complexity. &lt;/p&gt;&lt;h2&gt;And the winner is...&lt;/h2&gt;&lt;p&gt;There is no clear winner when it comes to comparing Java and .Net simply because they are both so powerful and similar in design. Here is a short list of positives they both share:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;An excellent suite of development tools&lt;/li&gt;&lt;li&gt;Relatively fast once compiled&lt;/li&gt;&lt;li&gt;Large developer bases&lt;/li&gt;&lt;li&gt;Comprehensive reference materials &lt;/li&gt;&lt;li&gt;Widespread industry backing&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Compared to .Net, Java has the following benefits:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Open source platform&lt;/li&gt;&lt;li&gt;A distributed development community&lt;/li&gt;&lt;li&gt;More deployment and architecture flexibility as it is platform neutral&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;On the other hand .Net has the following going for it:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Microsoft backed and integrated into Windows&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Concise platform controlled by Microsoft&lt;/li&gt;&lt;li&gt;Easier for existing Windows developers to adopt (i.e. C++ and Visual Basic coders)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;When it comes to the speed at which one can create applications it really comes down to the skill individual developer (after all, bad craftsmen blame their tools). But even with this in mind compared to more agile Web centric programming frameworks like Ruby on Rails and PHP, both Java and .Net are painfully slow to develop for.&lt;/p&gt;&lt;p&gt;So if you are after a concrete recommendation then here is my situation dependent advice that I have gained from programming experience:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;If you want a platform neutral, highly scalable and robust framework choose Java.&lt;/li&gt;&lt;li&gt;If you will only ever run Microsoft products and have a set of Windows centric programmers on hand then .Net is the easiest route. &lt;/li&gt;&lt;li&gt; If it is coding speed and flexibility you are after then checkout Ruby on Rails.&lt;/li&gt;&lt;li&gt;If you want something that is simple to deploy, relatively agile and easy to learn then PHP is the way to go.   &lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;  &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/tech/java&quot;&gt;java&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/programming&quot;&gt;programming&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/asp_net&quot;&gt;asp.net&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Mon, 22 Jan 2007 04:23:35 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">384 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>The consequences of a GPLed Java</title>
 <link>https://www.stress-free.co.nz/the_consequences_of_a_gpled_java</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;p&gt;A few days back Sun offically announced they would be open sourcing Java under the GPL to &lt;a href=&quot;http://peteryared.blogspot.com/2006/11/gpl-java-thank-you-sun.html&quot;&gt;applause from most of the industry&lt;/a&gt;. For a long time it was generally accepted that Sun would be fully open sourcing Java, the real question lay in exactly what license would be applied and how it would be undertaken. It turns out things will take about a year to be fully open sourced but even now the &lt;a href=&quot;https://openjdk.dev.java.net/&quot;&gt;OpenJDK website&lt;/a&gt; is looking very promising.&lt;!--break--&gt; &lt;/p&gt;&lt;p&gt;From an end-user and developer perspective the GPL is by far the best consequence. As it is compatible with Linux we should be seeing Java making a bigger appearance within distributions. Currently all distributions have a means of installing Java but it is hardly mainstream but no doubt in the very near future we will start to see distributions appearing with a nicely packaged and easy to install Java stack. My guess is &lt;a href=&quot;http://www.ubuntu.com/server&quot;&gt;Ubuntu Server&lt;/a&gt; will be the first to take advantage of this new license given the close relationship they already seem to have with Sun. One thing I hope is a consequence of this release is better integration and support for servlet engines (i.e. Tomcat) within Apache. Personally I would love to see an Apache module that made deploying Java applications as simple as the current PHP modules. Sure JK is available for hooking Tomcat into Apache but anyone who has used it much will tell you that it is hardly straightforward and definitely not much fun compared to the easy life PHP has. &lt;/p&gt;&lt;p&gt;How this announcement effects other aspects of the Linux/Open Source world is hard to tell. David Berlind has an excellent post on how this &lt;a href=&quot;http://blogs.zdnet.com/BTL/index.php?p=3932&quot;&gt;news may effect the recent Novell/Microsoft patent deal&lt;/a&gt; especially considering when it comes to &#039;prior art&#039; .Net and its runtime is a direct copy of Java. David Berlind writes some excellent articles and makes a good team with Dan Farber on the &lt;a href=&quot;http://blogs.zdnet.com/BTL/&quot;&gt;Between the Lines blog &amp;amp; podcast&lt;/a&gt;, David is often emotional with some left-field ideas but Dan balances this with a good dose of reality and industry skepticism. &lt;/p&gt;  &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/tech/linux&quot;&gt;linux&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/java&quot;&gt;java&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Wed, 15 Nov 2006 10:07:52 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">349 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>S3 meets Java meets WebDAV</title>
 <link>https://www.stress-free.co.nz/s3_meets_java_meets_webdav</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;img src=&quot;/sites/default/files/images/news/amazon_services.gif&quot; alt=&quot;&quot; width=&quot;170&quot; height=&quot;69&quot; /&gt;&lt;/div&gt;&lt;p&gt;The &lt;a href=&quot;http://www.carion.org/s3dav/index.html&quot;&gt;s3DAV&lt;/a&gt; looks like an interesting project. It is written in Java and exposes the &lt;a href=&quot;http://www.amazon.com/gp/browse.html?node=16427261&quot;&gt;Amazon S3 online storage service&lt;/a&gt; via WebDAV. It is promising because it looks like it can seamlessly expose S3 storage to users via most operating system&#039;s native &lt;a href=&quot;http://en.wikipedia.org/wiki/WebDAV&quot;&gt;WebDAV support&lt;/a&gt;. This will make using S3 as simple as using a network drive. Being Java it can run on just about any platform and either operate at the server or client level. If I had the time I would like to add authentication code to the project, it authentication to OpenLDAP/eDirectory and SQL databases would be a very handy feature to have if you wanted to expose the service to a number of users.&lt;br /&gt; &lt;/p&gt;  &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/tech/java&quot;&gt;java&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/webdav&quot;&gt;webdav&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/s3&quot;&gt;s3&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/amazon&quot;&gt;amazon&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Mon, 04 Sep 2006 21:48:38 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">306 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>Interesting moves on the JavaVM front</title>
 <link>https://www.stress-free.co.nz/interesting_moves_on_the_javavm_front</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
      &lt;p&gt;Java One is turning out to be quite interesting this year. Not only has the Java license been changed to allow for easier &lt;a href=&quot;http://www.zdnet.com.au/news/software/soa/Sun_to_make_Java_more_Linux_friendly/0,2000061733,39255431,00.htm&quot;&gt;distribution in Linux channels&lt;/a&gt;, but there is also a lot of buzz about coding in &lt;a href=&quot;http://www.robert-tolksdorf.de/vmlanguages.html&quot;&gt;different languages for the JavaVM&lt;/a&gt;. The most tantalizing from a business perspective is Sun&#039;s commitment to get &lt;a href=&quot;http://blogs.sun.com/roller/page/tor?entry=javaone_so_far&quot;&gt;Visual Basic running within the JavaVM&lt;/a&gt;. Whilst it will not be practical to get Visual Basic applications written specifically for Windows frameworks running, (that is what &lt;a href=&quot;http://www.mono-project.com/Main_Page&quot;&gt;Mono&lt;/a&gt; is for) it still will be interesting to see whether this significantly grows the Java (as a concept rather than a language) developer community. Even though Visual Basic may be ported across the fact it won&#039;t be tightly integrated into Windows like traditional Visual Basic it will more than likely not encourage a mass-migration of low-end, practical developers as some would hope. Still it will be nice to be able to get basic software written in by someone who only knows Visual Basic and have it able to run on any platform that supports the JavaVM.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;More interesting from my perspective was the progress the &lt;a href=&quot;http://jruby.sourceforge.net/&quot;&gt;JRuby project&lt;/a&gt; has made in getting the Ruby language ported to the JavaVM. Not only in the Ruby language over but even the &lt;a href=&quot;http://www.rubyonrails.org/&quot;&gt;Rails framework&lt;/a&gt; is &lt;a href=&quot;http://headius.blogspot.com/2006/05/and-they-said-jruby-was-dead.html&quot;&gt;beginning to run under Java&lt;/a&gt;. Admittedly it is a lot slower than the C version but from a deployment perspective it is very interesting as it would permit Ruby and Java applications to run and scale within the same JavaVM application engine.    &lt;br /&gt;&lt;/p&gt;   &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/tech/java&quot;&gt;java&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/ruby&quot;&gt;ruby&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Sat, 20 May 2006 07:22:38 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">275 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>Thomas Fuchs AJAX presentation &amp; Google&#039;s AJAX API</title>
 <link>https://www.stress-free.co.nz/thomas_fuchs_ajax_presentation_googles_ajax_api</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
      &lt;p&gt;Thomas Fuchs, the guy behind &lt;a href=&quot;http://script.aculo.us/&quot;&gt;script.aculo.us&lt;/a&gt; recently did a presentation in San Francisco about AJAX that looked pretty interesting. He has is slide show online in PDF format &lt;a href=&quot;http://mir.aculo.us/articles/2006/05/17/create-happy-users-slides-from-my-ajax-experience-presentation&quot; title=&quot;AJAX Presentation&quot;&gt;here&lt;/a&gt;. Associated notes made during the presentation have been put online by the guys at &lt;a href=&quot;http://ajaxian.com/archives/thomas-fuchs-combining-advanced-javascriptdom-techniques-to-enhance-use-experience&quot; title=&quot;AJAX presentation notes&quot;&gt;Ajaxian&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Probably the coolest piece of information I did not know about was the link to a very cool window library for &lt;a href=&quot;http://blogus.xilinus.com/pages/javawin&quot;&gt;Prototype/script.aculo.us enhanced window objects&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;At about the same time Google was announcing the immediate availability of their &lt;a href=&quot;http://code.google.com/webtoolkit/&quot;&gt;Google AJAX Toolkit for Java&lt;/a&gt;. It is interesting in that rather than acting as a HTML embedded AJAX library like Prototype/script.aculo.us is with Ruby on Rails this API seems targetted at Java coders used to writing Swing/AWT (desktop) application interfaces. This does not appeal to me much, I prefer the HTML/controller level coding of Ruby on Rails than writing a completely abstracted user interface in Java. Still the toolset provides a means by which a great many traditional desktop application programmers can start writing for the Internet using &lt;a href=&quot;http://code.google.com/webtoolkit/documentation/examples/kitchensink/&quot;&gt;a toolset that is very similar to those available on the desktop&lt;/a&gt;.    &lt;br /&gt;&lt;/p&gt;   &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/tech/google&quot;&gt;google&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/java&quot;&gt;java&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/ruby&quot;&gt;ruby&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/ajax&quot;&gt;ajax&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Wed, 17 May 2006 20:42:22 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">273 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>Software Development</title>
 <link>https://www.stress-free.co.nz/software</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;p&gt;During the working day (and night) a large portion of my time is spent developing web-based software solutions for organisations located within Wellington, New Zealand. Most of this development is related to knowledege management, primarily the field human resources.  &lt;br /&gt; Development is undertaken in the Java programming language as it is powerful yet flexible enough to be deployed on any major operating system in use. &lt;br /&gt;If you are interested in checking out the source (or just downloading the latest version) checkout the &lt;a title=&quot;StressFree Subversion Repository&quot; href=&quot;http://subversion.stress-free.co.nz/&quot;&gt;Subversion repository&lt;/a&gt;. &lt;br /&gt;&lt;/p&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign=&quot;bottom&quot;&gt;&lt;a href=&quot;/software/youwho&quot; target=&quot;_self&quot;&gt;&lt;strong&gt; YouWHO: Business Contacts Database&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;&lt;img src=&quot;/sites/default/files/images/youwho.jpg&quot; alt=&quot;&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;YouWHO is a powerful tool for managing your businesses&#039; human networks. The software is intended for multi-user environments where information on large numbers of people and organisations must be maintained for correspondence purposes. &lt;br /&gt; YouWHO is open-source and is available for download. &lt;br /&gt;&lt;/p&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign=&quot;bottom&quot;&gt;&lt;a href=&quot;/sites/default/files/projects/whichdoctor/project-summary.html&quot; target=&quot;_self&quot;&gt;&lt;strong&gt; WhichDoctor: Medical Doctor Database&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;&lt;img src=&quot;/sites/default/files/images/whichdoctor.jpg&quot; alt=&quot;&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Developed specifically for The Royal Australasian College of Physicians, WhichDoctor provides a simple yet very powerful toolset for managing the training, financial affairs and contact details of New Zealand medical physicians and paediatricians.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;  &lt;/div&gt;

&lt;ul class=&quot;field-taxonomy-vocabulary-1&quot;&gt;

      &lt;li&gt;
      &lt;a href=&quot;/tech/java&quot;&gt;java&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/stressfree_solutions&quot;&gt;stressfree solutions&lt;/a&gt;    &lt;/li&gt;
      &lt;li&gt;
      &lt;a href=&quot;/tech/software_development&quot;&gt;software development&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Fri, 26 Nov 2004 03:03:02 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">14 at https://www.stress-free.co.nz</guid>
</item>
</channel>
</rss>
