Wednesday Sep 30, 2009

Improved communications between users and publishers - Builds #81 and #82 deployed

Yesterday, we deployed build #82 of the Sun Software Library into production, and two weeks ago, we deployed build #81 into production, enhancing the library functionality in the following areas:

  • New Artwork: We have some new artwork:
    Sun Software Library artwork
    Other sites that want to link to the Sun Software Library can use this artwork.

  • Request to be a Content Manager includes a message: One of the reasons we had to change our Terms & Conditions is to allow the users to better communicate with other users.  In this release, we have added the ability for a content management requests to include a message, enabling the user to tell the current content administrators why they are requesting access. ⁞ For small organizations, "where everybody knows your name", this may not seem like a useful feature, but for large organizations (e.g. think of companies the sun of Sun Microsystems), this is especially useful.

    Sun Software Library Content Management Request Message

    The next few releases will include more functionality, enabling users to communicate with one another via the library.

  • New Terms & Conditions: As mentioned earlier, we wanted to add new functionality in the Sun Software Library, enabling users to anonymously contact publishers (and vice versa).  If you log into the Sun Software Library, and have previously accepted the terms and conditions, you'll see this popup, informing you that new terms and conditions are in place:

    Sun Software Library Terms and Conditions have changed

    Click "Accept" to continue.

    We've added this language to the Privacy section (section 6).  You can view the entire terms and conditions at
     “You acknowledge and agree that Site Offerings may enable You to
    allow to be contacted by Sun other Users, and may enable You to
    submit personally identifiable and other information to other
    Users.   You consent to such contact by other Users (unless Sun
    expressly gives You notice and an ability to opt-out from such
    contact), and to the unrestricted, non-exclusive use by such
    other Users of any such information You choose to submit to them,
    and You assume (and Sun disclaims) all liability and
    responsibility arising therefrom or related thereto.”
  • Internet Explorer support: IE is our most popular browser, some 55% of our users use it.  As such, we need to support it - all 3 versions of it (IE6, IE7, & IE8).  However, we do pay for that support, in terms of engineering time, both in testing, and in fixing bugs.  Primarily because of Firebug and our Mac desktops, Firefox continues to be our primary development and debug platform, with Safari being a close second.  We do fully test on Windows platforms, but find that what typically works on the other two browsers breaks on IE.  Recently, we've spent a significant amount of time debugging IE8, while maintaining functionality for previous versions of IE.

    It's hard to estimate what our actual cost is for supporting IE6, but it is relatively high.  As such, we support efforts to get users to migrate away from IE6.

  • We are 100% JSLint "The Good Parts" compliant: After we integrated JSLint with NetBeans, we got to work making sure our own Web UI (written in JavaScript) passed JSLint.  This took us a while, given the amount of JavaScript code that we have.  The first decision we had to make was what options we wanted to JSLint to enforce - we decided to leverage The Good Parts, written by Douglas Crockford.  Given that this is our entry in build.xml:
            <jslint4java haltOnFailure="${}" options="${}">
              <formatter type="plain" />
              <filelist id="jslint.filelist" dir="${basedir}/web" files="${cqs.js.jslint.files}"/>
    We then set this option in our file:
  , onevar, browser, undef, nomen, eqeqeq, plusplus, bitwise, regexp, strict, newcap, immed
    After we cleansed our JavaScript code, we set our builds to fail if JSLint detects any errors:
    This approach has already paid a dividend: One of our developers wrote some code that worked perfectly on Firefox and Safari, but would have created issues on IE, due to IE's more stringent syntax checking.  Normally, we would have caught this error during our Quality cycles, but JSLint picked up the issue by causing our Continuous Integration build to break.  The issue was fixed in minutes at a relatively low cost, rather than in hours at a much greater cost at a later period in time.

    This incident alone has validated our investment in integrating code inspection tools into our Continuous Integration builds.

    And, no, our feelings weren't hurt!  Humbled, maybe, deflated our egos a bit, definitely, but not hurt.

  • Cobertura integration: In the spirit of integration of code inspection tools into our environment, we integrated Cobertura into our Continuous Integration system.  We've run Cobertura before, but always manually, on an as needed basis.  Now we always have an up to date code coverage report.  Combined with Hudson's Cobertura Plugin, we configured our builds to measure code coverage taking into account all of our automated testing: Web Services based functional tests, Selenium based Web UI tests, and jUnit based traditional unit tests.  This way, we can measure the effectiveness of our testing strategy in realtime.  We still have some work to do in this area, but at least we know where we stand:

    Sun Software Library Code Coverage

  • And as always, lots of bug fixes and minor enhancements here and there...
There are more improvements in store, keep the feedback coming!

Tuesday Aug 25, 2009

Improved advanced search and better context sensitive help - build #80 deployed

Yesterday, we deployed build #80 of the Sun Software Library into production, enhancing the library functionality in the following areas:

  • Additional search options: you can now limit or filter search results based on a tag.  For example, you can now search for all entries that have a particular keyword and are tagged with a particular tag.  To do this, when you open up the "more options" dropdown right under the main search area, you'll notice a new input field titled "Tag".  In this field, you can type in a tag name that you want to use to filter the search results.  This field is "auto-completing", if you type in the first few letters of a tag name, you can select the full tag name from the dropdown list.

    You can see this additional functionality in action:

    Sun Software Library Combined Keyword and Tag Search capbility

  • Improved context sensitive help: We have also improved our context sensitive help functionality in the add/edit popup.  Specifically, we've automated the functionality of copying the FAQ questions from our Sun Software Library help center to this panel, improving the overall quality of the context sensitive help available.  This is another example of how we strive to automate as many of the manual processes that we have, so that we can provide a better service at a reduced delivery cost.

    This image displays the help you get when you edit a publisher entry.

    Sun Software Library Context Sensitive Help

    This image shows the help that you get when you select the "tags" tab.

    Sun Software Library Context Sensitive Help

  • Bug fixes - as always, we fixed bugs.

There are more improvements in store, keep the feedback coming!

Monday Aug 10, 2009

Most viewed date range and support for new browsers - build #79 deployed

Earlier today, we deployed build #79 of the Sun Software Library into production, enhancing the library functionality in the following areas:

  • Most viewed date range: You can now select which time period should be displayed in the "most viewed" area of our home page, so you can see what's popular over different date ranges. 

    library most viewed date selector

    The default setting is "all time", so you'll see what's popular since the beginning of the Sun Software Library, since this is the view that was presented all along.  If you want to see a different date range, simply change the setting.

    There are two aspects of this date range that are worth noting:
    • The data for this is updated once a day.  Our "most viewed" data does not change all that often, and we didn't think it warranted the extra processing required to make this more real time.  If you disagree, tell us.
    • We keep the data for month boundaries only, so when you select "Current Month", you'll be seeing the "most viewed" entries for the current calendar month, not the past 30 days.  For example, if you select "Current Month" on August 10th, you'll see the most popular entries for the month of August (e.g. the last 10 days only).
  • Upgraded our Web UI to ExtJS 3.0: As mentioned elsewhere in this blog, we use the Ext JS Cross-Browser Rich Internet Application Framework widget set for developing our Web UI.  Ext JS recently released version 3.0 of their library.  We upgraded our Web UI to this new version, found some bugs along the way.  The new library enabled us to support more browser types.
  • Support for IE8 & Chrome: We now officially test and support Internet Explorer 8 and Google Chrome browsers for our web site.  IE8 has some significant improvements for JavaScript developers, to quote Joe Hewitt (creator of Firebug): "I couldn't be happier that Microsoft completely copied Firebug for IE8."  We agree, debugging JavaScript on IE8 is finally reasonable.
  • JSLint: We have incorporated JSLint, the JavaScript code quality tool written by Douglas Crockford, into our NetBeans and Hudson based development process, as described in Ari Shamash's blog.  I typically agree w/Douglas Crockford, but JSLint did not hurt our feelingsWe are human after all, we welcome tools that make our lives better and our development more efficient, as I've mentioned several times in this blog....
  • Lots of bug fixes, as always.
There are more improvements in store, keep the feedback coming!

Thursday Jun 18, 2009

Recent Feedback about the Sun Software Library

I thought I would anonymous share some of the feedback we've received recently regarding the Sun Software Library:

  • "Very good looking user interface, I mean the Sun Software Library webpage, congrats." and "Site is well laid out and easy to use." - these are the ones I'm most proud of, especially given all the flack we've received along the way regarding our Web UI.  This is somewhat ironic, since we initially designed the site to be purely a set of web services that others would use to build UIs - we never planned on building a real UI.  Our initial UI's were really just "reference implementations", which many mistook to be production quality Web UI's.  Funny how things evolve.  You can read a bit about our original ideas here.
  • "It would be cool if the user can access to an application live demo, obviously web based apps." - the publisher can always associate a screencast with the software demonstrating how the software works, this screencast would show up at the bottom of the software detail page.  But even better, we're working on a feature that would allow the publisher to upload a Virtual Machine Image (e.g. VMI in OVF format) that users can instantiate and use (either on their desktop, e.g. via Virtual Box, or on a public cloud).
  • "i am regular visitor of this site" - awesome, we like to hear that!
  • "in the morning i regularly checks this site." - so do I, but only after my coffee fixes (most days, one cup just doesn't do it).
  • "This site keeps me Updated."
  • "i can get all the news and technical stuff from here."
  • "I want to wirte a review to get a free T-shirt, but I found the web  did not work!I try serveral times.The System always  displays  a error mesg  saying "a inner error please try again the later" when i set my screen name. you know I can not write review unless i set my screen name." - looks like there is a bug in the section of our WebUI that enables setting the screen name.  We are working on a fix.  Until then, you can use this page to set your screen name:

Keep the feedback coming, folks, we always want to hear from people who are using the Sun Software Library.

Wednesday May 27, 2009

Sun Software Library Overview Screencast

Bob May on the Sun Software Library team put together this overview screencast, demonstrating how to search and publish using the Sun Software Libray.  It is very nice, and in less than 10 minutes, shows all the prominent features.

Of course, this screencast is also visible directly inside the Sun Software Library:

Wednesday Apr 01, 2009

Sun Software Library build #69 deployed - finalizing our tag vocabulary & folksonomy

On Monday March 30th, 2009, we deployed build #69 of the Sun Software Library.  This blog entry details the additions we've made.

This release completes our work with Tag Clouds and Tag Controlled Vocabularies / Tag Folksonomies, which we started a few iterations back.  The approach we use is as follows:

  • We chose a set of tags that we display in our tag clouds.  While this list is fixed, we are open to any feedback to add or remove tags from those clouds.  A future release will allow personal tag clouds.
  • Any logged in user can tag entities in the library with those tags, causing them to be visible through the tag clouds.  This is the Tag Folksonomy aspect of the library.

This particular release enables users to quickly add tags that are in the tag clouds.  The new Web UI enables this as follows:

  • Clicking on the "add tag" displays the following (if the user is not logged on, they would be prompted to log in first, since only logged in users can add a tag):

    Add Tag

    Each of the dropdowns displayed corresponds to the list of tags in a particular tag cloud.  The user can select a tag from the list:

    Add Tag

    Then press the "add" button to actually add the tag:

    If the user wants to add a tag that is not in one of those lists, they can type it into the "other tag" field.  This field displays a list of matching tags corresponding to what is typed in.  The user is not limited to the list of tags displayed:

  • The editor can click on the "myLibrary" link on any of the Sun Software Library pages, click on "edit", then select the "Tags" tab, and add tags, as follows.  First the editor clicks on "myLibrary", then clicks on the "edit" button corresponding to the entry they want to edit:

    MyLibrary Add Tag

    The editor then selects the "Tags" tab:

    The editor then adds a tag, similar to the way tags are added in the detail page above:

    The editor can also add a custom tag:

    Finally, when the editor clicks the "add" button when the editor has selected the tags to add.  The tags selected are added to the tag list on the left side:

    Note that the tags are not actually published or saved until the "Publish" button is pressed:

That's pretty much it for this release..  We fixed a bunch of bugs, etc., but what else is new there?

Send us feedback!


Welcome to the Sun Software Library blog, where you will find interesting updates and tidbits about using the Sun Software Library.


« July 2016