Showing posts with label Open source. Show all posts
Showing posts with label Open source. Show all posts

2008-11-09

Working on Jing and Trang

I've been back to working on Jing and Trang for about a month now. It would be something of an understatement to say that they were badly in need of some maintenance love.

I started a jing-trang project on Google Code to host future development. There are new releases of both Jing and Trang in the downloads section of the project site. These have been out for about 10 days, and there have been a reasonable number of downloads, and no reports of any major bugs, so I think these should be fairly solid.  (Interestingly, the number of downloads of Trang have been running at about twice those of Jing.)

It's been 5 years since the last release, so what new and exciting features are there? Well, actually, in the current release, none.  My work for that release was focused on two areas:

  • getting things to work properly with current versions of Java and other dependencies;
  • getting the source code structure and build system into reasonable shape.

The second was a lot of work. The code base for Jing and Trang had evolved over a number of years, incorporating various bits of functionality that were independent of each other to various degrees; its structure only made any sense from a historical perspective.  The current structure is now nicely modular.  I converted my CVS repository to subversion before I started moving things around, so the complete history is available in the project repository. For people who want to stay on the bleeding edge, it's now really easy to check out and build from subversion.

My natural tendencies are much more to the cathedral than to the bazaar, but I'm trying to be more open.  I'm pleased to say that are already two committers in addition to myself. There's a commercial XML editor called <oXygen/>, which uses Jing and Trang to support RELAX NG. The main guy behind that, George Bina, had made a number of useful improvements. In particular, he upgraded Jing's support for the Namespace Routing Language to its ISO-standardized version, which is called NVDL (you might want to start with this NVDL tutorial rather than the spec).  This is now on the trunk. The other committer is Henri Sivonen, who has been using Jing in his Validator.nu service.

My goals for the next release are:

  • complete support for NVDL (I think the only missing feature is inline schemas)
  • support for the ISO-standardized version of Schematron
  • customizable resource resolution support (so that, for example, you can use XML catalogs)
  • support standard JAXP XML validation API (javax.xml.validation)
  • more code cleanup

Please use the issue tracker to let me know what you would like.  Google Code has a system that allow you to vote for issues: if you are logged in, which you can do with a regular Google account, each issue will be displayed with a check box next to a star; checking this box "stars" the issue for you, which both adds a vote for the issue and gets you email notifications about changes to it.

I haven't started any project-specific mailing lists yet.  For developers, the issue tracker seems to be enough at the moment.  For users, Jing and Trang are within the scope of the existing RELAX NG Users mailing list on Yahoo Groups.

2007-11-03

Strategies for using open source in the Thai software industry

The following is adapted from the slides of a presentation I gave yesterday on how the Thai software industry can benefit from open source. I think a more important problem is how the country as a whole can benefit from open source, but that wasn't what I was asked to talk about. Also note that the objective here is not to help open source but to help the Thai software industry. I think most, if not all of this, is applicable to other countries at a stage of development similar to Thailand's.

Application platform
  • Applications need server platform, including
    • OS
    • Database
    • Web server, framework
  • Open source server platform is at least as good in quality as proprietary platforms
  • Platform does not compete with local software industry
  • Using open source on the server does not require users to move away from familiar Windows desktop environment
  • Virtualization enables applications built on fully open source application platform to be deployed on Windows
  • Trend towards web-based applications, where everything is on the server
  • Avoids cost of platform software licenses, according to business model
    • Licensing software: users save cost
    • Appliance, software as a service: producer saves cost
  • Licensing issues
    • Software as a service: no issues
    • Licensing software: must keep separation between proprietary and open source parts (no linking)
    • Appliance: must make some parts of source code available to customers
  • Mixed strategies also possible (e.g. Oracle on Linux, PHP on Windows)
Development tools
  • Traditional strength of open source
  • Java-based IDEs (e.g. Eclipse, NetBeans)
    • Written in Java, but support many kinds of development in addition to Java, e.g. C/C++, Web
    • Several companies adopting Eclipse as base (e.g. Nokia)
    • Main advantage compared to Microsoft is no lock-in to Microsoft application platform
    • Cost not the key issue: Microsoft makes development tools available to ISVs at low cost
  • Collaboration tools
    • Open source community has evolved exceptionally effective collaboration tools because
      • it is highly distributed
      • it only adopts process to the extent that it actually delivers results
    • Proprietary tools expensive
    • Key tools
      1. Version control (CVS, Subversion, Mercurial)
      2. Issue tracking (Bugzilla, Trac)
Education and professional development
  • Participation in open source projects builds skills that universities often fail to teach
    • Communication, especially English language
    • Cooperation
    • Working with large programs
    • Modifying existing programs as opposed to creating new programs
  • Opportunity to work with world-class developers
  • Helps career of individual developer by building personal brand
    • Opportunity to get work overseas
    • Improves chances of getting into good US graduate school
  • Builds highly motivated developers with world-class skills, who wish to pursue technical career
  • Useful both at student and professional level
  • Should emphasize participation in existing, successful, international projects
  • Be highly selective about starting new projects
    • Successful, large open source projects could help build image of sponsor organization or Thailand generally
    • But very difficult to create a really successful, large open source projects
    • Choose area where no open source solution is yet available; opportunities still exist
    • Need to choose projects that can benefit rather than compete with local software industry
  • Individuals must choose projects they are passionate about
Embedded software
  • Hardware sales provide well-understood business model
  • Trend to Linux as OS for embedded systems
    • Increased power of embedded devices
    • Need for strong networking capabilities
  • Opportunity for electronics industry to move up the value chain
Fully open source business model
  • Product is fully open source
  • Possible for small company to achieve large market share because of
    • No licensing cost
    • Contribution of open source community
    • Examples: JBoss, MySQL
  • Business model based on support, consulting, training
  • Not an easy strategy