As you can tell from other entries in this blog, the Sun Software Library team firmly believes in Agile methodologies.  This means many things to many people, of course.  A good summary of Agile principles is viewable at the Agile Manifesto site.  This principle is particularly relevant to this blog entry:

Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

Yesterday, we deployed "build 64" to our production environment.  Typically, we deploy a new application version to our production environment every two weeks, but given the holidays in December and various vacation schedules, it has been four weeks since our last push (dammit, Jim, we're human beings, not machines).  You can find out what version is deployed here (this page is auto-generated by our build system, so it is always accurate).  Here are the new features in this release:

  • Promoting Tag Reuse in the Web UI: One aspect of a good Web UI is to facilitate data entry.  In order to make Tag management more effective for the entire system, we have implemented "Tag Autocompletion".  We expect this feature will drive tag reuse, and help the community control "Tag Sprawl".  Wherever you need to type in a Tag name (e.g. when adding a tag to an entity in the Library), you are now presented with list of tags that are already in the system that you can to choose from.  Of course, you can also type in a unique tag name.

    You can add a tag directly in the detail page:

    Tag Auto Completion

    Or you can add a tag when you are editing an entity:

    Adding tags while editing an entity

  • Manage permissions more easily: Some the feedback that we've received along the way indicated that our permissions management interface could use some help.  So we've made it easier, by adding a permissions management button to both the detail page (visible only if you are logged in and have the right permissions for that entity), and the mylibrary page.

    This image shows the Manage Permissions button in the MyLibrary tab:



    Pressing this button brings up this dialog box, enabling the Editor to view who has access, and what kind of access, to this publisher:



    This image shows the manage permissions button in the detail page - pressing it causes the same User Permissions Management dialog box displayed above to come up:



  • Tag Search Web Service: One of the better kept secrets about the Sun Software Library is our software design approach.  We believe strongly in the Model-View-Controller pattern, where the UI is distinctly separated from the business logic and data model (this paper, written by our good friend and mentor Dr. Joseph Bergin at Pace University, describes this pattern well).  Our Web UI access the Controller exclusively through web services.  Our approach has enabled other Web UI's to be built that reflect the same data - BigAdmin and Zembly.

    The latest web service is for searching our list of tags.  This web service was needed to implement the Web UI features described above.  To experiment around with this web service, you can use curl or wget from the command line.  The first example queries for the first three matches for an exact keyword match for "Solaris".  The JSON based result set includes the usage statistics for that tag (e.g. 1813 software entries in the library are tagged with Solaris), as well as some information about the total number of tags in the system:

    $ curl 'https://library.network.com/api/tags?q=Solaris&start=0&count=3'
    {"TagList": {
      "items": [{"entity": {
        "updatedAt": "2008-08-28 03:18:32 GMT",
        "id": 7115,
        "resourceCount": 3,
        "totalCount": 1953,
        "description": "Auto Created",
        "createdAt": "2008-08-28 03:18:32 GMT",
        "newsCount": 0,
        "name": "Solaris",
        "publisherCount": 137,
        "softwareCount": 1813
      }}],
      "itemsReturned": 1,
      "itemsFound": 1,
      "totalItems": 3222
    }}

    This next example queries for the first three tags that are a partial keyword match for "Solaris".  The result set is a list of tags, with each entry containing information about the usage for that specific tag.  In addition, the last few lines of the response indicate that while only three entries were returned as requested, there were 22 tags out of the 3222 tags in the system that matched our criteria.

    $ curl 'https://library.network.com/api/tags?q=Solaris*&start=0&count=3'
    {"TagList": {
      "items": [
        {"entity": {
          "updatedAt": "2008-08-28 03:15:30 GMT",
          "id": 6846,
          "resourceCount": 0,
          "totalCount": 7070,
          "description": "Auto Created",
          "createdAt": "2008-08-28 03:15:30 GMT",
          "newsCount": 0,
          "name": "Solaris 8",
          "publisherCount": 2658,
          "softwareCount": 4412
        }},
        {"entity": {
          "updatedAt": "2008-08-28 03:15:33 GMT",
          "id": 6850,
          "resourceCount": 0,
          "totalCount": 5859,
          "description": "Auto Created",
          "createdAt": "2008-08-28 03:15:33 GMT",
          "newsCount": 0,
          "name": "Solaris 9",
          "publisherCount": 2340,
          "softwareCount": 3519
        }},
        {"entity": {
          "updatedAt": "2008-08-28 03:15:33 GMT",
          "id": 6852,
          "resourceCount": 0,
          "totalCount": 15345,
          "description": "Auto Created",
          "createdAt": "2008-08-28 03:15:33 GMT",
          "newsCount": 0,
          "name": "Solaris 10",
          "publisherCount": 4467,
          "softwareCount": 10878
        }}
      ],
      "itemsReturned": 3,
      "itemsFound": 22,
      "totalItems": 3222
    }}


  • Documentation Updates: we've updated our documentation to include the API changes.
  • Bug Fixes: We've fixed 20 bugs/issues in this release.

And that's all for this particular iteration, folks!  Next application deploy will be in two weeks (assuming the additions we've made in the last two weeks pass our QA tests).  Comments and feedback always welcome.

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed

This blog copyright 2009 by Ari Shamash