Tuesday, October 21, 2008

Measuring the True Success of OpenOffice.org

Michael Meeks who leads the OpenOffice.org development team within Novell has taken a detailed look at contributions associated by metrics to OpenOffice.org and makes the case that Sun's tight control over the codebase and the lack of enough volunteer contributors leaves the development slowly stagnating over a period of time. Michael Meeks has recently started strongly advocating the position that Sun needs to setup a more independent OpenOffice.org foundation or otherwise allow more relaxed policies for commit access and be less rigid about assignment of copyright to itself for the development community of Openoffice.org to thrive beyond Sun developers.

He writes:

Crude as they are - the statistics show a picture of slow disengagement by Sun, combined with a spectacular lack of growth in the developer community. In a healthy project we would expect to see a large number of volunteer developers involved, in addition - we would expect to see a large number of peer companies contributing to the common code pool; we do not see this in OpenOffice.org. Indeed, quite the opposite we appear to have the lowest number of active developers on OO.o since records began: 24, this contrasts negatively with Linux's recent low of 160+. Even spun in the most positive way, OO.o is at best stagnating from a development perspective.

A half-hearted open-source strategy (or execution) that is not truly 'Open' runs a real risk of capturing the perceived business negatives of Free software: that people can copy your product for free, without capturing many of the advantages: that people help you develop it, and in doing so build a fantastic support and services market you can dominate. It's certainly possible to cruise along talking about all the marketing advantages of end-user communities, but in the end-game, without a focus on developers, and making OO.o truly fair and fun to contribute to - any amount of spin will not end up selling a dying horse.

OpenOffice.org occupies a prominent position in the Linux Desktop and among Windows users as well looking for a free alternative to Microsoft Office. It is important that it continues to progress further to remain competitive.


Resource - OSNews

MacBook Pro Does Not Support Both GPUs Simultaneously

When Apple introduced new MacBook Pro notebooks with two types of Graphics Processing Units (GPUs) from NVIDIA, many wondered if both GPUs could be used simultaneously. NVIDIA's Hybrid SLI/GeForce Boost technology allows some notebook configurations to use one or both of a notebook's GPUs. When both GPUs are utilized simultaneously, the user can see dramatic performance boosts.

NVIDIA has since clarified that the new MacBook Pro only supports the ability to switch between the integrated and discrete GPUs for power conservation ("HybridPower"), but does not allow the use of both at the same time ("GeForce Boost"):

Apple's Macbook Pro (Late 2008) does feature both the NVIDIA® GeForce®9400M motherboard GPU for everyday computing and the NVIDIA® GeForce® 9600M GT discrete GPU for high graphics performance. You can switch between the Geforce 9400M motherboard GPU (called energy saver mode) and the Geforce 9600M GT discrete GPU (called performance mode), but you cannot use both GPU's at once in this implementation.

In fact, it's been revealed that switching between the two GPUs on the MacBook Pro requires the user to log out of Mac OS X. Apparently, other implementations of NVIDIA's Hybrid SLI allows on-the-fly switching between GPUs, so it's not clear if this limitation in the MacBook Pro is a software or hardware issue.

This inability to use both GPUs simultaneously appears to be a hardware limitation and unlikely to be improved in future software updates.

Resource - MacRumors

6 Scripting Languages Your Developers Wish You'd Let Them Use

Greiner's article on the state of the scripting universe was slashdotted. Several people raised their eyebrows at the (to them) obvious omissions, since the article only covered PHP, Perl, Python, Ruby, Tcl and JavaScript. As I wrote at the time, Lynn chose those languages because hers was a follow-up to an article from three years back. Plus, most IT managers are familiar with at least one of those well-known scripting languages, even if they haven't personally written a line of code in one of them.

However, while we've covered several in depth, those five dynamic languages are not the only ones developers use. Since every programming language is a tool suited to solve a particular problem, it behooves each IT shop to use the best tool for the job. So in this article, I share a few up-and-coming scripting languages that really ought to be on your company's radar, with a few passionate arguments from developers who have adopted them.

Scala

Scala is particularly attractive to Java developers. Per its website: "Scala... is both object-oriented (think inheritance, methods, ...) and functional (think closures). It blends a number of modern language features, while maintaining close compatibility with Java."

Dean Wampler, senior consultant at Object Mentor, is currently co-writing a book on Scala for O'Reilly. "Scala is the best language I have seen that meets the 'one size fits all' goal," he says. "Scala fixes problems with Java, like verbosity and limitations in Java's support for object-oriented programming. In addition, Scala supports functional programming—an approach that has been around for a long time in academic computer science, but is now proving to be very useful for writing robust concurrent software. Concurrency is very important for scaling up software at large websites and enterprises."

For David Ritchie MacIver, a developer at Trampoline Systems, Scala's primary benefit is that he can avoid Java. "I can match [Java] in terms of library support, performance and ease of deployment," he says. Many Java tools carry over to Scala, too. MacIver says his company is adopting Scala for some of their visualization software as the software is updated, and reducing its use of Java and Ruby.

MacIver doesn't recommend Scala for everything, though. "People will push Scala for concurrency advantages. Please don't succumb to the temptation. It doesn't particularly have any. Any more than Java does, that is."

Groovy

Another language gaining ground in the Java community is Groovy. According to its website, Groovy is an agile and dynamic language for the Java Virtual Machine (JVM). It builds on Java's strengths but has additional power features inspired by languages like Python, Ruby and Smalltalk.

So, what's Groovy's compelling feature? According to the slashdot commenter who first brought it up (and inspired this entire project... see what he or she started?), "I was surprised that Groovy didn't appear anywhere in the article. If there's a dynamic language poised to convert the enterprise crowd, it's Groovy. [It's] able to compile into Java bytecode, compile Java code and directly exploit the huge base of Java, but without the cumbersome Java syntax. I wouldn't be surprised to see Python and Ruby supplanted by Groovy in a couple of years."

Java developer Chris Broadfoot agrees. "Groovy lets Java developers code in an effective, expressive manner, while maintaining cross-compatibility with legacy Java code," he says.

Clojure

Your company may be adopting the latest hardware, but can your software take advantage of its multithreading capabilities? You might want to look at Clojure, a dynamic programming language that targets the JVM. Explains its website, Clojure is "designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language—it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection."

Small? Powerful? Java? Can those three co-exist? Chris Houser, member of the technical staff at Four D Development in Fort Wayne says, "Clojure is a small, powerful language that compiles and runs on the JVM, so no new infrastructure [is needed]. Plus it lets you get more done with less code, which is good for development schedules and maintenance. It's particularly good at taking advantage of multicore hardware without as much programmer overhead as Java."

"The most pressing issue in software development today is how to better take advantage of multicore CPUs to increase performance and reduce energy costs," explains J. McConnell, founder of Übermensch Consulting. "Clojure provides a fundamentally better approach (in terms of ease and safety) to concurrency than other languages out there. Its Lisp heritage gives it the power to greatly increase programmer productivity in a way that grows over time and to enable easy DSL creation to allow business owners to verify the correctness of programs. The fact that it runs on the JVM and can smoothly integrate with the millions of lines of legacy Java code are just icing on a very tall cake."

Lua

Formally, Lua is "a powerful, fast, light-weight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping."

Less formally: "It's just a really slick little language overall," says Evan DeMond, a junior software engineer at a Midwest custom software development shop. "I enjoy programming in it, and I get things done in it quickly." DeMond has been using Lua for scripts and small tools. He has also experimented with writing larger apps in it lately, which "has been going pretty well so far," he says.

Developer Ralph Hempel describes Lua as "one of the best little secrets in programming languages, and I've been through a lot of them in the last 30 years." While it lacks a formally approved library distribution mechanism, Hempel says, there are plenty of de facto standard libraries for file system access, network connectivity, database access and so on. "For me, the best part of the Lua system is the rock-solid language core and the carefully considered upgrades and patches. The releases of Lua are controlled by the 'three amigos' that have been involved with the language from the start." Hempel has ported Lua to the LEGO Mindstorms NXT.

Matthew Wild, director of software consultancy Heavy Horse Ltd., sees Lua's advantages in terms of rapid Agile development, exceeding what is possible with more traditional languages. Lua doesn't try to do too much, Wild says. "Instead, it gives you the required building blocks out of which it is possible to build anything you want, in any way you want. The key benefits unique to Lua are the fact that it is amazingly small, fast, and on a technical level a masterpiece. Not every project manages to achieve so much with so little of the dreaded 'bloat.'"

Wild adds, "I've become so hopelessly in love with Lua, I've incorporated it into nearly all my recent projects, and yet it fits in nicely every time." Wild is starting to use Lua as a standalone, rather than embedded, language. "It is still fitting the job perfectly. Thanks to Lua, I'm now looking at weeks, rather than months, in our development schedule."

F#

The .NET development community is not without its set of scripting language enhancements. Among the most prominent is F#, which began as a Microsoft research programming language "to provide the much sought-after combination of type safety, succinctness, performance, expressivity and scripting, with all the advantages of running on a high-quality, well-supported modern runtime system." Microsoft is now turning F# into a fully-supported language on the .NET platform.

C# MVP Tomas Petricek, author of Real-world Functional Programming in .NET is working on a book about F#. Petrick says F# encourages the functional immutable style of programming, which is suitable for writing concurrent and distributed programs that can be easily tested. Moreover, it supports the declarative style of programming. "The way I like to talk about declarative style is that it allows you to divide the work between senior programmers that develop some 'smart' library for solving problems and junior programmers that use it to solve daily problems," he says. "An example of this may be List module in F#, but the LINQ libraries in .NET 3.5 follow the same functional principles."

Many programming languages make it easy to write something small that grows into a larger app, but they present problems when the software needs to turn into a real library with a strong logical structure. "F# gives you an excellent way for doing this," says Petricek. "You can start with simplicity (just as in dynamically-typed languages such as Python or Ruby), but end up with a very robust program (just as in C# or Java). The key benefit of F# is that the transition is completely fluent without having to do any painful steps in between. In fact, you don't need to rewrite any code that you wrote at the beginning."

Bulgarian ASP.NET developer Mihail Kochanov sees additional benefits for F#. "I believe learning F# makes me a better C# programmer," he says, explaining that F# made it easier to understand LINQ. He's also interested in F# for its parallel library context. "If you have stuff you might want to run parallel in the future, it might be good to be ready," he says.

Boo

Boo proclaims on its home page that it is "a new object oriented statically typed programming language for the Common Language Infrastructure (CLI) with a Python-inspired syntax and a special focus on language and compiler extensibility."

Josh Coffman, lead developer and founder of Computerist Solutions, would lobby for Boo particularly if he were to implement a domain-specific language (DSL). "It's not an interpreted language because it's compiled to CLI," he says. "Because it runs on .Net, you have all the power of .Net—only it's more flexible, and you can use it as a script or a compiled program." Boo has plenty of technical advantages, too, he says, such as being able to manipulate the compiler output during compilation. "The space indented syntax is kinda fun," he adds.

Matthew Fowle, software developer at Useful Networks, says "A computer language is a tool for making software; Boo as a computer language plays well with existing tools (the .Net ecosystem), but it goes further by allowing developers unprecedented power in developing their own language tooling. Most languages work around a fixed set of concepts; Boo works by giving developers the ability to craft and shape their own language concepts. Further, Boo syntax is wonderfully wrist-friendly, and comes with a variety of interpreters to accelerate rapid development."

I don't mean to imply that these up-and-coming languages are the only ones worth paying attention to. There are several others that IT managers should be aware of—and proponents are invited to add their suggestions in the article comments. Here's a few bonus languages.

Among the interesting languages are Factor, which MacIver described as "modernized Forth, with better support for functional programming."

Software engineer Anthony Cook would prefer to use REBOL, a language that gains its advantage through lightweight domain-specific sublanguages and micro-formats. Cook appreciates Rebol's "dialects" which let you create your own domain-specific languages. "One guy even built a virtual machine Assembly language interpreter as a Rebol dialect to teach it to his students," says Cook. It's also tiny, self-contained and cross platform, so code written for Windows runs exactly the same on Linux or Mac OS X. "It has a built in GUI library, the ability to send e-mails and access Web resources built in, with no includes, in only a couple of simple lines." The size of the executable program is small too, he says. "To do the same thing in Java would take hundreds of megabytes; in C it would take tons of includes and many lines of code to do the same thing."

It's fast, too. Cook says, "I'm used to using Ruby all day, and it's one of the slowest languages out there. REBOL is a Forth-stack based yet dynamic prototype-based language that runs almost as fast as native C code."

Software architect David Brabant would try to convince the boss to let him use Lisp. "Lisp is elegant, Lisp is compact, Lisp is powerful, Lisp is reflexive, Lisp allows me to write my DSL in a snap, using a few macros." But, he sighs, "In the end, I would be forced to use PHP like anybody else."


Resource - CIO.com

Why 7?

There's been a lot of lively discussion since I confirmed yesterday that the official name for the next version of the Window client operating system will be "Windows 7" about how we got to the number "7."

I'll say up front, that there are many ways to count the releases of Windows and it's been both a trip down memory lane and quite amusing to read all the different theories about how we got to the number "7."

Anyway, the numbering we used is quite simple. The very first release of Windows was Windows 1.0, the second was Windows 2.0, the third Windows 3.0.

Here's where things get a little more complicated. Following Windows 3.0 was Windows NT which was code versioned as Windows 3.1. Then came Windows 95, which was code versioned as Windows 4.0. Then, Windows 98, 98 SE and Windows Millennium each shipped as 4.0.1998, 4.10.2222, and 4.90.3000, respectively. So we're counting all 9x versions as being 4.0.

Windows 2000 code was 5.0 and then we shipped Windows XP as 5.1, even though it was a major release we didn't' want to change code version numbers to maximize application compatibility.

That brings us to Windows Vista, which is 6.0. So we see Windows 7 as our next logical significant release and 7th in the family of Windows releases.

We learned a lot about using 5.1 for XP and how that helped developers with version checking for API compatibility. We also had the lesson reinforced when we applied the version number in the Windows Vista code as Windows 6.0-- that changing basic version numbers can cause application compatibility issues.

So we decided to ship the Windows 7 code as Windows 6.1 - which is what you will see in the actual version of the product in cmd.exe or computer properties.

There's been some fodder about whether using 6.1 in the code is an indicator of the relevance of Windows 7. It is not.

Windows 7 is a significant and evolutionary advancement of the client operating system. It is in every way a major effort in design, engineering and innovation. The only thing to read into the code versioning is that we are absolutely committed to making sure application compatibility is optimized for our customers.



Resource - Windows Vista Team Blog

Microsoft suing DHL over 21,000 damaged Xbox units

Microsoft Corp. is suing DHL Express Inc. in U.S. District Court in Seattle over a damaged shipment of 21,600 Xbox consoles that the Redmond, Wash.-based computer giant said the shipper won’t pay for.

In the suit, Microsoft alleges the 21,600 units, valued at more than $2 million, were damaged in a train derailment last October in Duke, Texas, after being unloaded from a port in McAllen, Texas.

Microsoft (NASDAQ: MSFT) alleges the 12 containers of games were damaged by “impact damage, wetting, pilferage and shortage allegedly as a result of train derailment.”

“At no time has plaintiff (Microsoft) been compensated for its damages ... by defendant (DHL), despite demands made therefore. Defendant has refused and continues to refuse to pay plaintiff’s damages,” Microsoft’s suit alleges.



Resource - Atlanta Business Chronicle

Virus Alert: ASUS Recalls Eee Box PCs In Japan

Taiwan's ASUSTek Computer has announced a recall of its Eee Box PCs that were sold in Japan because they contain a virus.

The virus, known as recycled.exe, resides on the D drive of the machine and once opened, the virus will be activated and copy itself to the C drive as well as any other removable or USB drives. Affected by the virus, the running of the computer will become slow and it may download harmful malware programs from the Internet.

Li Yusheng, a representative from ASUS's public relations department, says that the virus entered the computers while they were downloading the Japanese version software to the computer. However, the anti-virus protections on Asus' other production lines are free from the bug and the software of Eee Box products sold to other countries are reportedly safe.

Li emphasizes that the build-in virus in Eee Box sold to Japan is an accident. The computer company has announced a recall of all these suspected Eee Box products and will impose stricter measures on production line management and software protection.

With a total shipment of 4,500, only about 300 Eee Box PCs have been sold in the Japanese market.



Resource - China Tech News

OpenOffice 3.0 released amid fears of development stagnation

The OpenOffice.org (OOo) project ranks high among the most popular open source software applications. The cross-platform productivity suite, which has been adopted by government agencies, companies, and individual users around the world, got a big boost this morning with the official release of version 3.0. The new version includes a modest assortment of significant new features and brings improved support for document standards.

One of the most noteworthy additions in this release is native compatibility with the Mac OS X platform. Users no longer have to rely on the NeoOffice port or use X11 to run OOo on a Mac. This new feature could help expand the program's market share and attract new users and contributors. When we reviewed Microsoft Office for Mac 2008 earlier this year, many of our readers expressed serious frustration with Microsoft's decision to omit support for VBA. Some Mac users who require VBA support might benefit from switching to OOo, which offers passable VBA compatibility.



OOo supports several file formats, but uses OASIS's OpenDocument Format (ODF) by default. ODF is rapidly gaining widespread acceptance and is also supported by Google Docs, Zoho, IBM's Lotus Notes, and KDE's KOffice project. ODF is increasingly being adopted as the preferred format by government agencies in many different countries. This trend has placed pressure on Microsoft, which has agreed to include native ODF support in future versions of Office.

Improvements and new features

A major area of improvement in OOo 3.0 is support for emerging document standards. OOo 3.0 includes the first major implementation of ODF 1.2, an updated version of the format that is in the final stages of the standardization process and is expected to receive ISO approval this summer. The new version of the format brings a new formula language and a new metadata system based on W3C's Web Ontology Language and Resource Description Framework. OOo 3.0 also includes import filters for Microsoft's controversial Office Open XML format (OOXML), the XML-based document format that is used in Office 2007 and Office 2008 for Mac OS X. Support for Microsoft's format will ensure that OOo users can still read documents produced by Microsoft Office users.

OOo 3.0 includes a variety of other compelling technical features, too. OOo Calc, the suite's spreadsheet program, has a new solver component, introduced a new collaborative editing feature, and also boosted the total number of columns it supports from 256 to 1,024. OOo Writer, the word processing program, added a new annotation feature and a new zoom slider.


The new version includes a few minor user interface enhancements, including a new, cleaner icon theme. The style reminds me a little bit of the Silk icon theme, but with much more vibrant coloring. Linux users will obviously prefer OOo's Tango theme, but the new default theme looks very good on Windows. OOo 3.0 also includes a new launcher that provides easy access to templates, existing documents, and all of the suite's programs. When OOo is installed on Windows, it creates a shortcut on the desktop that initiates the launcher. Users can still also launch the OOo programs individually from the Start Menu.

OOo contributor fears that development is stagnating

As the OOo project increases in relevance, some friction has emerged between the growing number of stakeholders with different agendas. Allegations continually emerge that Sun's management of the project is impeding acceptance of some third-party code contributions and is deterring additional corporate involvement. Novell's Michael Meeks, a very active OpenOffice.org developer and a frequent critic of Sun, expressed some new concerns last week in anticipation of the release.

Novell maintains an OOo patchset which includes a number of changes that developers haven't been able to push upstream to Sun's version for a variety of reasons. Many of these patches maintained by Novell provide important features that are valuable to Linux users, including support for embedded multimedia via GStreamer, faster startup time, improved Excel interoperability, support for 3D slide transitions in Impress, and support for Mono-based automation and scripting. Many mainstream desktop Linux distributions now package Novell's version instead of the one from Sun, because of these improvements.

Sun's process for vetting new features is often viewed as excessively bureaucratic by third-party contributors and some are also concerned about Sun's copyright assignment requirements. Novell's patchset ensures that the improvements made by users who are unwilling to accommodate Sun's procedural requirements will eventually reach users and don't just languish indefinitely in the bug report system. Sun has responded to concerns from the third-party developer community by improving the contributor agreement and making an effort to act on community feedback. Critics, however, argue that Sun needs to turn over control to an independent foundation so that contributors will not have to assign copyright directly to Sun.

In a blog entry published last week, Meeks published contributor statistics collected from the version control system. He says that the latest statistics demonstrate a universal decline in involvement in the OOo project, from both Sun and independent community members. He sees this as a sign that the project is no longer healthy, and he warns that the consequences could be dire if the problem isn't resolved.

"It is clear that the number of active contributors Sun brings to the project is continuing to shrink, which would be fine if this was being made up for by a matched increase in external contributors, sadly that seems not to be so," wrote Meeks. "Crude as they are—the statistics show a picture of slow disengagement by Sun, combined with a spectacular lack of growth in the developer community. In a healthy project we would expect to see a large number of volunteer developers involved, in addition—we would expect to see a large number of peer companies contributing to the common code pool; we do not see this in OpenOffice.org."

Meeks calls for Sun to distance itself from the project and establish a new governance model that is totally community-driven. "Kill the ossified, paralyzed and gerrymandered political system in OO.o. Instead put the developers (all of them), and those actively contributing into the driving seat," Meeks urges. "This in turn should help to kill the many horribly demotivating and dysfunctional process steps currently used to stop code from getting included, and should help to attract volunteers."

We attempted to contact Louis Suarez-Potts, Sun's community manager for OOo, to see if he could provide additional insight or a response to the latest allegations from Meeks, but we have not yet received a response.

OpenOffice.org 3.0 is an impressive release that delivers some important new functionality, especially for Mac OS X users. The project continues to deliver a surprising amount of polish and functionality, but it still lags behind Microsoft's dominant office suite. If IBM, Sun, Novell, and other major stakeholders could work together more closely to accelerate development and lower the barriers to entry for community contributors, it would put OOo in a much stronger position to compete with Microsoft's office hegemony.



Resource - Ars Technica