Alta's HowTo's Complement
complement to Solaris OS developer documentation
Global Software Engineering
Last night I participated in a colleague's defense of his masters thesis on global software engineering. Gary Thompson defended his thesis, "Teaching and Assessment Methods for Practical and Global Software Engineering Education," at San Francisco State University.
Very commonly in business we work in globally distributed teams. People from all over the world communicate, resolve design disagreements, contribute to the same code base, resolve code checkin conflicts. In open projects such as OpenSolaris, project team members are not even employees of the same company.
As common as this is in business, it is very uncommon in education. Students graduate with poor knowledge and little or no experience in global project team practices. To address this gap, Gary has been co-teaching, refining, evolving a course in Global Software Engineering for the last five or six years. See my previous blog post on this topic.
One surprising discovery from these student project teams is that teams whose members were all local to SFSU tended to employ the same project management practices as teams whose members were separated by eight time zones. All teams used tools such as email, IM, and Skype approximately the same amount. Teams whose members were all local did not necessarily meet face-to-face very often.
At the end there was time for questions from the audience. I said, if you have a project that will live longer than a semester, you must document how and why particular design decisions were reached. In Solaris and OpenSolaris, we have an architectural review process to archive documentation of these decisions. I was assured that when the students updated their specifications, they documented why the changes were made.
Another person asked whether there were any language problems in the global teams. Gary said there were some problems with the team in Germany: The professor in Germany reported that his team had trouble understanding the English of the SFSU students! Many of the SFSU students were not native English speakers. Again, the situation mirrors what you find in the business world. People who work in a particular location are not necessarily native to that location.
A very interesting and educational evening. I hope this type of program spreads to more schools.
Posted at 12:17PM Feb 25, 2009 by alta in General | Comments[0]
The Process Is the Project
Recently I had the great pleasure of observing final project presentations given by students at San Francisco State University. The course, Global Software Engineering, taught by Gary Thompson of Sun and Dr. Dragutin Petkovic, Chair of the SFSU Computer Science Department, was a project management and collaboration course: project participation metrics. Each student project team created a web based application that gathers statistics from the collaborative development tools provided by java.net to allow university level instructors to assess and measure levels of teamwork within a collaborative development group.
I observed ten presentations. Six teams were all SFSU students; two teams included students from Florida Atlantic University in Boca Raton as well as students from SFSU; and two teams included students from University of Fulda in Fulda, Germany as well as students from SFSU. I was particularly interested to hear about any communication issues and how decisions were made in the project teams. Of special interest to me was how these issues were handled when some team members were in different time zones, three or eight hours away, and some team members spoke different native languages. Most teams preferred to have frequent team phone meetings; other teams divided the work so that team members in different locations handled separate pieces of the work and phone meetings were less frequent.
Posted at 09:55PM Jan 14, 2009 by alta in General | Comments[0]
Linc Volt Comes to Sun
Today, Neil Young drove his Linc Volt to the Sun Microsystems Menlo Park campus.
For more information - and better photos - see lincvolt.com. Scroll about two-thirds of the way down the page to see the Sun Java logo.
The Java Connection The car is loaded with data gathering and reporting - powered by Java. Neil presented a preview of his career archive on Java-powered Blu-ray Disc at JavaOne 2008. At JavaOne 2009 you will be able to see the power consumption and other data streaming from the Linc Volt.
Left, two innovators:
James Gosling, creator of Java
Neil Young, music, Blu-ray, and green technologies innovator
Posted at 08:25PM Nov 11, 2008 by alta in General | Comments[0]
Nitro Burning Builds
Want to Cut Your Build Time in Half?
Thanks to work done by Sasha Kolbasov and Jonathan Chew on Project Nitro, your Solaris OS/Networking (ON) consolidation build time could be cut in half.
Build times are cut most drastically for SPARC builds, but x64/x86 users benefit as well. Use b85 or later. For details, search for "parallel" in the changelog for b85. More improvement is coming.
The April SVOSUG meeting (Silicon Valley OpenSolaris User Group) was pretty lively. People who do not build ON regularly have experience with other large builds. Everyone shared ideas about how to speed up a build. People were very interested in the details of what Sasha and Jonathan have done to speed up the ON build, and almost as interested in the tools they invented to visualize where improvements were made and where more improvements might be made. There was much discussion at the meeting of precompiled header files and recursive make. Sasha and Jonathan discovered issues with precompiled header files in the ON build. The ON make system does use recursive make invocations, but make is difficult to parallelize well since all dependencies are not known at the top level.
The greatest reduction in build time was acheived by increasing parallelism in the build. This revealed interesting issues with missing build dependencies and race conditions. Some advice:
- Express dependencies correctly. Dependencies should be explicit and complete. Do not use .WAIT to manage dependencies. Use .WAIT to separate big chunks of work, but not to manage dependencies.
- Use .PARALLEL as much as possible.
- Look for parts of the build that have common prerequisites and build those prerequisites up front.
- Convert pattern-matching rules to explicit rules in Makefiles.
DTrace can help you understand what targets are built and why. DTrace is an extremely useful took for analyzing complex workloads. Use gnuplot to visualize the data. Testing under extreme load uncovers some races. Debugging race conditions takes a lot of time. Modern machines can do a lot in parallel. Flat Makefiles might provide better parallelism, but they are difficult to write.
Some of the tasks of this project:
- Eliminate duplicate work
- Eliminate unnecessary dependencies
- Manage dependencies to minimize incremental build time
- Enable more parallelism (multiple threads, cores, sockets, machines)
- Optimize tools
Some results of this project:
- Huge improvement from using the newest Sun Studio 11 lint(1B). Even bigger improvement on x86 than on SPARC.
- Smaller improvement from building with source and objects in /tmp for building debug and non-debug sequentially and in parallel.
- Big improvement using ZFS (instead of UFS) with 32 GB of RAM on x86. Much smaller improvement on SPARC.
- Small improvement on x86 from using the ccache free and open source tool.
- Small improvement on x86 from using the distcc free and open source tool.
Hopefully the slide set for this presentation will show up on the Project Nitro page soon.
Posted at 04:26PM May 12, 2008 by alta in General | Comments[0]
Get In On The Ground Floor
How Open Is OpenSolaris?
This question is hotly debated, but tonight at the SVOSUG (Silicon Valley OpenSolaris User Group meeting), participants were invited several times to join and contribute to a project that is still in the design phase: FMAC (Flexible Mandatory Access Control. A measure of how cool it is that this project is being developed in the open from the design phase is that the project is co-sponsored by one of the most secure organizations on the planet: the NSA (the U.S. National Security Agency).
John Weeks gave an overview of the current state of the design and current plans and invited everyone to visit the project web site and join the discussion. You don't have to contribute code; you can comment on the design, contribute a wish or requirement. Can you make a security policy easier to express? Can you help design a GUI? The project is being designed in the community, by the community.
Teaser: One exciting feature of the project is that you can change security policy on a running system; you do not have to bring the system down to modify the security policy. When a new policy is loaded, access decisions that have already been calculated are flushed and then recalculated at next access.
Coincidentally, the SVOSUG had a visitor tonight (Moriah Waterland) from the Caiman project (Solaris Install Revisited) - another project that has been in the open since the design phase.
And first, but not least, Alan DuBoff invited everyone to contribute to his OpenSolaris ON Build Cheatsheet. If you can install the Solaris OS, you should be able to build ON using this guide.
Posted at 11:01PM Mar 27, 2008 by alta in General | Comments[0]
Enter! Win$
Reminder: OpenSolaris Community Innovation Awards
Go to awards.opensolaris.org to register, declare an entry, and submit your entry. See the updated information on the OpenSolaris Community Innovation Awards Program site. Before you can register for the contest, you must already be registered as an OpenSolaris.org member. Before you can submit an entry, you must already have an SCA number. All types of entries are welcome. Deadline is June 13, 2008. See the web site for prizes, details on how to enter, and other information.
Posted at 07:41AM Mar 25, 2008 by alta in General | Comments[0]
Participant Countries Added to the Innovation Awards Programs
Eight Participant Countries Added to the Open Source Community Innovation Awards ProgramsEight countries have been added to the list of countries that can participate in the Open Source Community Innovation Awards programs. Currently, residents of the following countries can participate:
Argentina, Australia, Austria, Belgium, Brazil, Bulgaria, Cambodia, Canada, Chile, China, Croatia, Czech Republic, Denmark, Finland, France, Germany, Hungary, India, Indonesia, Ireland, Israel, Italy, Japan, Korea, Malaysia, Mexico, New Zealand, Norway, Peru, the Philippines, Poland, Romania, Russia, Singapore, South Africa, Spain, Sri Lanka, Sweden, Switzerland, Taiwan, Thailand, Turkey, the Netherlands, the United Kingdom, Venezuela, and the fifty United States and the District of Columbia
Check the official rules at each community contest web site for details.
Design a project and join in!
Posted at 04:52PM Feb 25, 2008 by alta in General | Comments[2]
Win Cash! Community Innovation Awards Programs
Participate in the Open Source Community Innovation Awards Programs!
Community Innovation Awards Program web site
Each of the following six open source communities is giving away $175,000 (USD). Each community has specified its own contest with its own rules. Prize winners will be announced in August 2008 and payments made by the end of September 2008.
The OpenSolaris community also will be announcing a student research grant program.
Posted at 01:42PM Feb 07, 2008 by alta in General | Comments[0]
SJSU Computer Engineering Project Exposition
Computer Engineering graduates at San Jose State University showed off their projects yesterday. I had interesting conversations with several of the students and very much enjoyed the day.
A project called Green Solutions had a laptop controlling the angle of the window blinds to minimize use of the home heater or air conditioner. As the room gets warmer, the blinds close. Their plan is to have the temperature in every room of the house monitored wirelessly and the blinds in every room of the house controlled wirelessly.
Other green projects also were presented, and several projects to assist health care professionals were shown.
Another project I enjoyed was a performance comparison between RoR and Java. The presenter had, among other things, spoken with a couple of people from Joyent at the 2007 JavaOne conference. Joyent are big users of RoR and Solaris ZFS and Zones.
Digression: Ben Rockwood of Joyent presented at JavaOne 2007 on OpenSolaris. Here is the description of his presentation:
Lots of operating systems are available to you, but how do you decide which to use? What are the pros and cons? As a developer, do you really care? This presentation discusses the OpenSolaris operating system and why it isn't a platform to simply run your applications on but, rather, a natural extension of your development environment. The OpenSolaris OS is free and commercially backed; sports a large user base and community; is open-source, highly observable, mature, and stable; and is driving the cutting edge in operating system design. Technologies such as ZFS and Dynamic Tracing (DTrace) aren't just for sysadmins; rather, savvy developers can easily leverage the best aspects of the operating system to improve the experience your application delivers and to speed deployments. Security such as role-based authentication and Solaris Auditing; resource control such as Zones, memory, and CPU capping; and much more all enhance your deployment. Put a large developer community behind it that is passionate about Java technology and Sun projects such as the GlassFish project; Mustang; and Java Platform, Enterprise Edition (Java EE) 5, and you have a winning combination.
Thank you, Ben, and good luck to all the SJSU Computer Engineering graduates!
Posted at 09:21PM Dec 09, 2007 by alta in General | Comments[2]
Thank You, JavaOne Attendees
Develop on SXDE, Build and Deploy on Solaris 10
Last week I helped in the Solaris Express Developer Edition information booth
at the JavaOne conference in San Francisco. Information flowed both ways. Some
JavaOne attendees learned some things about the Solaris OS that they didn't
know before, and I listened to your comments about the Solaris OS.
Watch this great video presentation about Solaris Express Developer Edition.
Some of you did not know:
- Solaris Express Developer Edition (SXDE) is the version after Solaris 10. Most of the features in SXDE will appear in Solaris 10 in six months or so, but SXDE delivers new features and drivers first. SXDE releases every three months, while Solaris 10 updates release approximately every six months.
- SXDE includes the latest available versions of Sun Studio and NetBeans IDE, Enterprise Pack, Visual Web Pack, and Profiler. On x86 platforms, these developer tools install automatically.
- Both Solaris 10 and SXDE come with DTrace, a superior performance tool that no one else has. The forthcoming release of Sun Studio includes a DTrace plugin to help you find the source of performance problems in your code. Also, please see the Chime visualization tool for DTrace.
- SXDE also comes with up-to-date versions of Firefox, Thunderbird, and StarOffice, and comes with GNOME enhancements.
- Both Solaris 10 and SXDE come with Zones and ZFS.
- Both Solaris 10 and SXDE get high marks from users for performance, security, and stability.
- Both Solaris 10 and SXDE can cohabitate with other operating systems on the same x86 platform.
Some comments I heard from you:
- The install experience is painful.
We hear you and have been hard at work to fix this problem. SXDE is easier to install than Solaris 10 and gets easier with each new release. The forthcoming SXDE release will include NWAM (Network Auto-Magic) to automate your network setup. Also, please follow the Caiman project. In the meantime, see whether the install cheat sheet helps you. - You don't have all the drivers I need.
Every new release comes with more drivers. Please check this list. Use Sun Device Detection Tool to help you find a driver. Some of you were sympathetic with our plight to get the hardware specifications necessary to write drivers. Some of you did not know that we cannot simply look at Linux drivers for the same hardware (they are GPL). - Too difficult for software vendors to create an intstaller for their
software, and too difficult for users to install it.
We hear your complaints about the package tools (pkgmk(1), pkgadd(1M), etc.). Creating a GUI installer that ISVs can hook into is on our to-do list.
Thank you for your feedback. Please keep those comments coming, and in the meantime, Develop on SXDE, Build and Deploy on Solaris 10.
Posted at 12:35PM May 14, 2007 by alta in General | Comments[1]
Wednesday Feb 25, 2009
