<?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 - software development</title>
 <link>https://www.stress-free.co.nz/tech/software_development</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>Doom &amp; gloom programmer keynote by Tim Bray</title>
 <link>https://www.stress-free.co.nz/doom_and_gloom_programmer_keynote_by_tim_bray</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;p&gt;Tim Bray&#039;s &lt;a href=&quot;http://www.futureofwebapps.com/&quot;&gt;Future of Web Apps 2008&lt;/a&gt; keynote has been published to the web. Unfortunately he does not paint a rosy future for developers given the current economic climate. Entitled &quot;The Fear Factor&quot;, according to Tim &lt;a href=&quot;http://www.tbray.org/ongoing/When/200x/2008/10/11/Tough-Times&quot;&gt;he rewrote the script&lt;/a&gt; the night before after spending a couple of depressing days with London bankers and watching television news.&lt;/p&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;object id=&quot;viddler&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; width=&quot;437&quot; height=&quot;287&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.viddler.com/player/6055127/&quot; /&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot; /&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; width=&quot;437&quot; height=&quot;287&quot; src=&quot;http://www.viddler.com/player/6055127/&quot; name=&quot;viddler&quot; wmode=&quot;transparent&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/div&gt;
&lt;p&gt;Tim gives a very down to earth presentation that sits in stark contrast to most bright and breezy keynotes you see posted to the Web. The underlying concept is that the credit crunch will force many companies to suspend broad, big budget development in favor of small, low-cost projects. In this environment there will be project cancellations and job losses, so if you are a programmer it is a case of staying competitive through learning and networking more than your competition.&lt;/p&gt;
&lt;h3&gt;Some of the interesting points raised in the half hour keynote were:&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt; &lt;strong&gt;&lt;span class=&quot;misspell&quot;&gt;Monetisation&lt;/span&gt; will occur at the point of value&lt;/strong&gt;. Rather than $100,000 up-front licenses, companies will be looking to pay only once a system is in production &lt;em&gt;i.e.&lt;/em&gt; Open source will hold a significant business advantage. &lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Waterfall is dead&lt;/strong&gt;. In an uncertain, credit-poor economy the idea that a project can go for 14 months without delivering value will be seen as unacceptable to decision makers. &lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The Cloud is good, but lock-in is bad&lt;/strong&gt;. Companies will value the cost savings from on-demand services like &lt;a id=&quot;p51t&quot; title=&quot;Amazon Web Services&quot; href=&quot;http://aws.amazon.com/&quot;&gt;Amazon Web Services&lt;/a&gt; and &lt;a id=&quot;baq9&quot; title=&quot;Google App Engine&quot; href=&quot;http://code.google.com/appengine/&quot;&gt;Google App Engine&lt;/a&gt;, but be wary of the pitfalls of vendor lock-in (we do not want another Windows monopoly). &lt;/li&gt;
&lt;li&gt; &lt;strong&gt;With regulation comes business opportunities&lt;/strong&gt;. Governments around the world will be passing legislation to ensure another financial crisis is avoided. From a software development standpoint this will create a significant opportunities for those in the right place with the right abilities. &lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Mobile technology and micro-transactions are the new fertile ground&lt;/strong&gt;. &lt;a id=&quot;o73r&quot; title=&quot;Apple iPhone&quot; href=&quot;http://www.apple.com/iphone/&quot;&gt;Apple iPhone&lt;/a&gt; and &lt;a id=&quot;jtf4&quot; title=&quot;Google Andriod&quot; href=&quot;http://code.google.com/android/&quot;&gt;Google Android&lt;/a&gt; have realised the development potential of the mobile device. Their application marketplaces are &lt;a id=&quot;ktzz&quot; title=&quot;vibrant economies&quot; href=&quot;http://www.techcrunch.com/2008/09/14/iphone-apps-downloaded-twice-as-often-as-songs/&quot;&gt;vibrant economies&lt;/a&gt; where micro-transactions of $1-$5 rule. &lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Build something for yourself&lt;/strong&gt;. You will only be truly successful at building something that satisfies your own needs. Steve &lt;span class=&quot;misspell&quot;&gt;Yegge&lt;/span&gt; has said it best in &lt;em&gt;&lt;a href=&quot;http://steve-yegge.blogspot.com/2008/08/business-requirements-are-bullshit.html&quot;&gt;&quot;business requirements are bullshit&quot;&lt;/a&gt;&lt;/em&gt;. &lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Do not be a [insert language here] developer&lt;/strong&gt;. The idea that someone can ever learn and use one computer language (e.g. Java, PHP, Ruby, etc.) in a competitive marketplace will not cut the mustard. Be a &#039;web developer&#039; who is prepared to explore anything, even legacy code - you never know where it will lead. &lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Network, network, network&lt;/strong&gt;. Nine times out of ten work will come from people you know rather than what you know. Do not expect the plum jobs to land in your lap if you do not participate in communities. &lt;em&gt;e.g.&lt;/em&gt; conferences, mailing lists, blogs, Twitter, etc.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Overall it is a very good, down to earth talk that provides a valuable reality check in these &quot;interesting times&quot;.&lt;/p&gt;
&lt;p&gt; &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/web_2_0&quot;&gt;web 2.0&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>Sun, 12 Oct 2008 09:38:47 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">528 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>Architecture Astronauts</title>
 <link>https://www.stress-free.co.nz/architecture_astronauts</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;p&gt;A &lt;a href=&quot;http://www.megginson.com/blogs/quoderat/2007/01/04/in-praise-of-architecture-astronauts/&quot;&gt;blog post by David Megginson&lt;/a&gt; brought to my attention an &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000018.html&quot;&gt;article posted six years ago&lt;/a&gt; by Joel Spolsky about architecture astronauts. Who are they? Architecture astronauts in Joel&#039;s words are:&lt;/p&gt;&lt;h6&gt;&lt;a href=&quot;http://citebite.com/g7e0o8j9rgfk&quot;&gt;&quot;Smart thinkers (that) just don&#039;t know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don&#039;t actually mean anything at all.&quot;&lt;/a&gt;&lt;/h6&gt;&lt;p&gt;The moral behind Spolsky&#039;s story will continue to remain relevant simply because it is a lesson often forgotten in the heat of a debate or brainstorming session. David Megginson agrees with many of these observations but does point out architecture astronauts have had a positive, if not always successful effect on technology development. From the real world of architecture I am always reminded of &lt;a href=&quot;http://en.wikipedia.org/wiki/Ludwig_Mies_van_der_Rohe&quot;&gt;Mies van der Roe&#039;s&lt;/a&gt; ability to grasp the big ideas of modernism whilst still keeping his head when it came to functionality and details (after all, &#039;God is in the details&#039;). This ability gains even more credit when you compare his work to &lt;a href=&quot;http://en.wikipedia.org/wiki/Le_Corbusier&quot;&gt;Le Corbusier&lt;/a&gt;, arguably one of architecture&#039;s great astronauts, who&#039;s ideas often far outstretched their functionality or success in the real world. &lt;/p&gt;&lt;p&gt;On a technical tangent I especially agree with one of David&#039;s last points about XML and the heady effect it has had on technology architects and evangelists in the past:&lt;/p&gt;&lt;h6&gt;&lt;a href=&quot;http://citebite.com/y7s0x9k0vatp&quot;&gt;&quot;(Architecture astronauts) believe that if a bit of standardization is good, a lot must be even better.&quot;&lt;/a&gt;&lt;/h6&gt;&lt;p&gt;If anything both posts highlight the importance of stopping work, taking a step back and readdressing what it is you are actually trying to achieve and the way it is being done. Unfortunately for most of us it is all too easy to get caught up in the big idea or the nuts and bolts, in the process missing the chance to grasp what we were really on to in the first place.   &lt;br /&gt;&lt;!--break--&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;/thesis&quot;&gt;thesis&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/architecture&quot;&gt;architecture&lt;/a&gt;    &lt;/li&gt;
  
&lt;/ul&gt;
</description>
 <pubDate>Thu, 11 Jan 2007 08:46:06 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">378 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>Software design choices and the Vista shutdown menu</title>
 <link>https://www.stress-free.co.nz/software_design_choices_and_the_vista_shutdown_menu</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;div class=&quot;image&quot; style=&quot;margin-top: 10px; margin-bottom: 10px&quot;&gt;&lt;img src=&quot;/sites/default/files/u63/vista_shutdown.jpg&quot; alt=&quot;&quot; width=&quot;188&quot; height=&quot;138&quot; /&gt;&lt;/div&gt;&lt;p&gt;Windows Vista is Microsoft&#039;s very delayed &#039;next-generation&#039; operating system finally shipping to consumers this December/January. Whilst aesthetically similar to Windows XP it offers a host of new functionality. One new piece of functionality that has drawn a lot of criticism has been the overly complicated shutdown menu. You would think shutting down your computer would be simple but Vista now offers nine different ways of ending your Windows session from the &#039;start&#039; menu. The result is confusing, ugly and a pain to use. Joel on Software has a well considered article on how &lt;a href=&quot;http://www.joelonsoftware.com/items/2006/11/21.html&quot;&gt;too much choice, whilst good in theory is bad in practice&lt;/a&gt; and uses this new shutdown functionality as an example of the problem.&lt;/p&gt;&lt;p&gt; Simplification and a healthy dose of logic is usually the answer to these problems but this can only come when the decision making process is clean and crisp. Unfortunately in the case of Windows Vista the decision making process was far from this. Moishe Lettvin was part of the shutdown UI team on Windows Vista and in a blog posting he &lt;a href=&quot;http://www.drizzle.com/~lettvin/2006/11/windows-shutdown-crapfest.html&quot;&gt;describes the painful process behind this little piece of functionality&lt;/a&gt; (comprising of just a couple of hundred lines of code). The feature is the ultimate example of design by distributed committee as it received input from 43 different people. The consequence of this? After one year of development the &#039;team&#039; produced a traditional, option packed menu. If his post is an indication of the software development beuarcaracy and process issues within Microsoft then they are in serious trouble. Without significant changes Windows Vista will symbolise only the tip of the iceberg when it comes to overdue, feature-incomplete products emerging from Microsoft development labs in the coming years.&lt;!--break--&gt;&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/windows&quot;&gt;windows&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>Tue, 28 Nov 2006 09:54:50 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">357 at https://www.stress-free.co.nz</guid>
</item>
<item>
 <title>To open source or not open source, that is the question</title>
 <link>https://www.stress-free.co.nz/to_open_source_or_not_open_source_that_is_the_question</link>
 <description>
  &lt;div class=&quot;field-body&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;a href=&quot;http://www.opensource.org&quot;&gt;&lt;img src=&quot;/sites/default/files/u63/opensource.jpg&quot; alt=&quot;&quot; width=&quot;109&quot; height=&quot;94&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Thanks to &lt;a href=&quot;http://reverendted.wordpress.com/&quot;&gt;Ted Haegar&lt;/a&gt; I came across a piece by &lt;a href=&quot;http://tonywhitmore.co.uk/blog/2006/09/11/novell-sticky-questions/&quot;&gt;Tony Whitmore&lt;/a&gt; on a similar topic to &lt;a href=&quot;/on_novell_open_audio&quot;&gt;my Novell Open Audio review&lt;/a&gt;. Tony raises a couple of good ideological questions about the development models at work within Novell, more precisely around the AppArmor and XGL products. Whilst each software project is unique in its own way his questioning of the strategies employed by Novell does beg the difficult question, how open source should product development be? &lt;/p&gt;&lt;p&gt;When I mull this issue around in my head it is like there are a couple of little devils sitting on my  shoulders whispering sweet nothings.  On one side sits the &#039;hardcore&#039; open source evangelist devil who looks surprisingly like a drunk fluffy penguin dressed in dirty, well-worn clothes. He whispers in my ear that all software development should be free and open to ensure clean, secure code and a strong community both supporting the product and the FOSS community at large. However on the other shoulder sits a clean cut, black turtleneck wearing cat that seems to go by a different name each year. He presents a flashy keynote on the benefits of developing software products with a clear vision and a small, well controlled development team. What is confusing is that they both have some very good points along with vocal opposition in some quarters.&lt;/p&gt;&lt;p&gt;Novell at present are threading a tricky needle between the opinions of both devils. Their challenge lies in creating a strong community of well supported and stable products whilst at the same time introducing a number of &quot;gee-wiz&quot; features that are unique so to generate enough buzz to outshine their competitor&#039;s alternatives. Open source is great for building strong communities and stable products because everyone can see and take part in development. Unfortunately this same model makes marketing a nightmare because it has a high &#039;yawn&#039; factor. Take for example &lt;a href=&quot;http://www.novell.com/linux/xglrelease/&quot;&gt;XGL&lt;/a&gt;, it made a huge splash a few months ago mainly because Novell came out of nowhere to introduce it into their &lt;a href=&quot;http://www.novell.com/products/desktop/&quot;&gt;Suse Linux Enterprise Desktop&lt;/a&gt; line. This splash put the spotlight on SLED like never before and really pushed it into the forefront of viable Linux desktop alternatives. However if XGL development had been undertaken in a purely open source manner with its conception well publicised and discussed the eventual product and marketing potential would have been considerably different. Not only would it have probably taken a different evolutionary path but more importantly its marketing pull on SLED&#039;s launch would have been insignificant.&lt;/p&gt;&lt;p&gt;Whilst closed development is arguably better in the early stages of development from an efficiency and marketing perspective over the long-term an open source approach is far superior. Now that XGL has gone through its silent phase and emerged to an eager audience it is good to see Novell have open sourced the code and are focusing on getting the technology mature and broadly accepted. Personally I would like to see &lt;a href=&quot;http://www.novell.com/products/edirectory/&quot;&gt;eDirectory&lt;/a&gt; open sourced mainly because it lost its &#039;wow&#039; factor a long time ago and could stand to gain a significant amount by being accepted by the wider open source movement. A significant part of this acceptance would be seamless integration into existing Linux distributions in the same manner as Apache, MySQL and PHP have achieved. There is a real need for a robust, high-quality, open source directory server as it is the centrepiece around which nearly all office networks are built. A few years ago Red Hat open sourced the &lt;a href=&quot;http://directory.fedora.redhat.com/&quot;&gt;Fedora Directory Server&lt;/a&gt; but I have not been impressed when I have experimented with it. This is mainly because FDS is &lt;a href=&quot;http://www.openldap.org/&quot;&gt;OpenLDAP&lt;/a&gt; on steroids rather than a stable, scalable and industry proven directory server alternative that can go toe to toe with &lt;a href=&quot;http://www.microsoft.com/windowsserver2003/technologies/directory/activedirectory/default.mspx&quot;&gt;Microsoft&#039;s Active Directory&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The other factor to take into account with eDirectory is that Novell does not really make any money out of it yet it is the cornerstone of nearly all their income streams. Consequently open sourcing this key piece of infrastructure and encouraging its adoption and integration in other platforms will broaden&#039;s Novell&#039;s potential market. This will mean when the next &#039;gee-wiz&#039; product gets released it is just that little bit easier to sell to prospective customers because a considerable portion of the puzzle is already in place. To open source or not open source is not a clean cut strategy but one that seems to hold most potential when used equally in appropriate portions. It would be nice in the ideal world to have a completely open development model, but deep down I think we all want to get marketed to by at least one flashy, out of the blue product that makes us wonder how we got so far through our lives without it. Novell with XGL (and to a lesser extent AppArmor) achieved both goals with an intelligent, balanced approach and for that they should be commended.&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/novell&quot;&gt;novell&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>Thu, 14 Sep 2006 11:16:04 +0000</pubDate>
 <dc:creator>David</dc:creator>
 <guid isPermaLink="false">312 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>
