Posts Tagged ‘open source projects’

Is it OK to make money out of open-source projects?

I know how to make money out of open-source projects and apps but is it OK to do so if other people have helped you with the project. Just keep the money from ads, paid support and other stuff.

What computer programming language should I learn?

I want an opinion on what computer programming language i should
learn. Its between C# and Java. I would like the pros and cons and if
you can find any begginer open source projects i can look into for both
thatd be helpful. Thanks in advance!

how to volunteer for open source projects?

what is the procedure to become a part of open source projects?
what is the expected pre-requisite to become a part of it?

A Code Duplication Survey – Which Industry Has the Highest Technical Debt?

Duplicated code is the immediate product of cut & paste development, the most common form of software reuse to date. By duplicating code, developers implement new functionality using already available code with similar specifications. To this end, available code is first cloned and then slightly modified to meet new requirements. Typical modifications include variable renaming, insertion/deletion of a small number of lines of code, and a different formatting of the source code. The main advantage of cut & paste development as a form of software reuse is the high coding productivity and the small intellectual strain on the developer. However on long term, code duplication aggregates in a high technical debt for the developer company, leading to un-maintainable software.

A recent cross industry survey has tried to assess the size of the technical debt based on existing code duplication. The trigger of this study was the high amount of duplication observed by some companies in the commercial embedded world. Anonymous sources have reported up to 25% code duplication, which is rather surprising given the resource constrained nature of the segment. The study has been performed on open source projects covering 6 segments: Office, Enterprise Financial, Databases, Communication, Network/Embedded, and Software Development. From each segment, three relevant projects have been selected for analysis based on popularity as reflected by SourceForge and Google.

The result of the analysis shows that the Financial/Enterprise industry segment has the highest technical debt. With up to 35% duplication on average, the software projects in this segment run a very high risk of becoming un-maintainable. The runner-up is the Network/Embedded segment with up to 15% duplication, a rather high figure for the field. For the remaining segments, the detected amount of duplication revolves around 5%.

The open question of this study is: How does the commercial world compare with the Open Source arena? Arguably, open source projects are rather concerned with technology development and less with making products run in every possible context. This can imply that more duplication is to be found in the commercial world, as a result of making same functionality available in more contexts (e.g., porting parts of the software to other platforms). This hypothesis is supported by the higher amount of duplication reported in the commercial embedded segment compared to the study results. Consequently, the actual code duplication amount in the commercial Financial/Enterprise segment could be even higher than reported by the study.

In conclusion, code duplication can be a major cause for a high technical debt and can lead to un-maintainable software. Therefore, one should constantly monitor the amount of duplication and factor out common functionality when possible.

Author: Lucian Voinea
Article Source: EzineArticles.com
Provided by: Cellphone news

Google’s Summer of Code

Students are flipping bits, not burgers.

Summer is under way and, once again, students participating in the Google Summer of Code (GSoC) project are flipping bits, not burgers.

The project derives its name from the Summer of Love. Now in its third year since launching in 2005, the GSoC gives student software developers an opportunity to gain practical experience creating open-source programs or helping with established projects. While most students come from computer science and computer engineering programs, a variety of educational backgrounds are represented, including students in computational biology and mainstream engineering. The students work with a mentor and are paid a stipend for their participation. According to Google’s Web site, several of the 2005 students served as mentors in 2006.

In its first three years, the GSoC engaged more than 1,000 students who worked on more than 100 open-source projects, creating hundreds of thousands of lines of code. In 2005, Google worked with 400 students and 40 mentoring organizations representing 49 countries around the world. The number increased to more than 600 in 2006. In 2007, Google accepted 131 organizations and more than 900 students. Students could submit up to 20 applications, although only one would be accepted; 6,200 applications came in.

The Goals

According to the Web site, Google’s goals for the GSoC project include releasing more open-source code for the benefit of all; inspiring young developers to participate in open-source development; help open-source projects attract new developers and committers; provide qualified students the opportunity to find summer work in a field related to their academic training; and to give students more exposure to real-world software-development scenarios, such as distributed development, software licensing and mailing list etiquette.

Google does not view this project as a recruiting tool, although the company does look at the program’s results to identify potential recruits. While past student participants have reported that their experience on the project made them more attractive to employers, most who found work are not currently employed by Google.

How It Works

A Wikipedia entry reports that early in March, prospective mentoring organizations submit applications to Google. By mid-March, Google publishes its list of accepted mentoring organizations and invites student applications. When students apply, they detail the project they want to perform. The corresponding mentoring organization evaluates the students’ proposal(s) and ranks the applications. Google then decides how many projects each mentoring organization receives, and selects the top-rated applicants for that organization. The mentoring organization must provide a mentor for each accepted project.

In mid-April, Google publishes a list of accepted student applications on its Web site. Students begin coding in late May, and Google begins issuing first payments. The mentors perform mid-term evaluations in July and final evaluations in late August. In 2006, 82 percent of the participating students received a positive evaluation. Any code developed during the course of the project belongs to the mentoring organization unless otherwise agreed.

Projects 2007

The GSoC Web site lists this year’s participating members and provides an abstract of the projects that are under way. There are far too many to cover here, but include One Laptop per Child, or OLPC , a new non-profit organization that is researching the possibilities of developing a $100 laptop. This technology would have a huge impact on how the world’s children receive their education. OLPC has eight projects in the GSoC project, dealing with such matters as exploring alternate energy systems, facilities to charge backup batteries, and similar issues.

Another participant, WordPress , the organization behind the popular open-source blogging software, has 10 projects under way. They company’s projects include coding that will facilitate page management and make it easier for bloggers to change the order of their pages. Another WordPress project involves coding that improves support for podcasting.

The Mozilla Foundation is another participating member. Its several projects include developing code to support roaming in the Thunderbird e-mail application, and coding to add Firefox support for the new JPEG 2000 image-compression algorithm. JPEG 2000 produces higher-quality images at smaller file sizes than the standard JPEG, but currently only the Safari browser renders the JPEG 2000.

Google itself has four projects running in the GSoC. Google’s own projects include development of coding to realize socket support in Google Web Toolkit on a browser level using GWT Socket module. Another Web Toolkit project seeks to “make the process of writing gadgets in it less of a challenge.”

Growing Pains

As could be expected, the GSoC project has been a learning experience for Google and the mentoring organizations, as well as the students. In the 2005 season, Google received criticism from the open-source organizations for providing insufficient time to plan projects. Nevertheless, 39 organizations participated, including FreeBSD, Apache, Ubuntu and others.

Additionally, the majority of projects stalled immediately at project end. Wikipedia quoted Google’s open-source program manager, Chris DiBona, as saying that only 30 percent of students stuck with their projects afterward. The number of surviving projects may be less than half. However, in an interview with InternetNews , DiBona said that the GSoC project isn’t only about getting coders to remain with their projects after September. Google also wants to introduce students to the open-source development process and to keep them working in a computer science-related field over the summer.

Some mentoring organizations indicated that, in future years, they would spend more time selecting appropriate projects, and would look for ones that are more likely to be completed within the time allotment.

As for GSoC 2006, things got off to a rocky start in late May when 1,800 student applicants received an erroneous e-mail saying their projects had been accepted. A follow-up e-mail a few minutes later apologized for the error, and told recipients that if they had received two e-mails, one saying they were accepted and one saying they were not accepted, then they were not accepted. Not all applicants found this amusing.

Similarly, GSoC 2007 has not been “glitch-free.” Hoping to increase the number of student applicants, Google extended the application deadline from March 24 to March 26, and then, at the last minute, to March 27. In early April, the acceptance letters were delayed for administrative reasons. At one point, Google’s Web interface erroneously changed to give each applicant a status of “not selected.” This, as Wikipedia explained it, “caused a huge number of Summer of Code result-awaiting nerds to just suffer a collective heart attack.” Google responded by saying that the acceptance e-mail was the only genuine word regarding acceptance or rejection.

Good grief! Would someone volunteer to teach the folks at Google how to use e-mail and how to update a Web site?

Anyone wanting to hear Summer of Code podcasts from participating students can surf on over to the Google Summer of Code Blog . You’ll find a number of links to podcasts and videocasts. Apparently, students who meander into Google’s headquarters are pressed into duty to create a podcast describing their activities.

Author: June Campbell
Article Source: EzineArticles.com
Provided by: Canada duty rate

How to obtain design diagrams from open source projects?

I am trying to learn better design techniques, partly read the GoF book on design patterns, and I am looking forward to understanding these concepts better. Everyone has told me that open source projects are beneficial in trying to learn these patterns. My question is, how can I get UML/other design diagrams from these projects? (I don’t see them anywhere in the code repository, if you do, paste a link). Thanks

Does Open Source Have Monopolistic Tendencies?

The open source movement was formally launched in 1998 when Netscape licensed and released their code as open source under the name of Mozilla. Since then, open source software projects, where users are also in part, the creators of the software content through collaboration, have been gaining in momentum. Critics argue that open source software has, by nature, monopolistic tendencies once they turn into successful businesses. This seems contradictory. How can projects that are community based be described as monopolistic?

When looking for a product created by a company with more centralized models of development such as those typically used in commercial companies, price might play a big role in influencing one’s final choice. No matter the specifications of their business needs, often a budget will only take a buyer so far. But when software is free, everybody rallies up behind the business perceived as offering the best solution to meet their needs, leaving only crumbs for their weaker competitors. After all, in the world of open source, where software applications are available at no cost, why not use the best of the crop?

JBoss illustrates this well, having become the undisputed dominant open source application server. JBoss does not necessarily offer a unique product, but there are no close substitutes available for the function its software fills. Over the years many other open source projects have tried to compete against JBoss and ended up falling though the cracks. JOnAS and Apache Geronimo are all still around but lagging behind in the shadow of the giant.

The success of an open source product depends as much on its popularity as on its community. In fact, one cannot survive without the other: Should a project lose its market lead, volunteers will leave and seek the prestige of contributing to the project dominating the market at the time. After all, who wants to work for the loser? As the releases are more and more scattered and the forums less active, the project loses its momentum. Eventually, potential clients are not interested enough to buy its documentation, ask for custom development, enroll in classes, pay for support or consultation and soon, the project is no longer commercially viable. In this manner, the dominating project will organically erase competition and become a kind of monopoly.

For example, openbravo has taken the lead for ERT (Enterprise Resource Planning). Any small to medium size business looking for open source CRM (Customer Relationship Management) will think about SugarCRM sugarcrm and larger ones will turn to Compiere. The market for open source ECM (Enterprise Content Manager) is dominated by Alfresco Enterprise. And although the mass might not even be able to describe how an open source application compares to a close source one, many households are using Firefox as their Internet Browser and any edgy programmer will be expected to have installed Linux on their home computer. These are all examples of commercially successful and dominant open source software businesses.

Lets look at the area of billing software for which there is a real market need, yet surprisingly, not much to be found in the way of open source. One explanation for this scarcity could lay in the fact that billing is simply not very sexy. A group of volunteers will likely be more enthused at the prospect of creating an application server software than that of developing a billing software. Also, billing has this particularity when compared to other areas: it requires great flexibility. Billing is intimately tied to the business rules of a firm and needs to accommodate them. Potentially, there exists as many business rules as there are services offered by different firms. A corporation offering web hosting will have business rules that differ from one offering news paper subscriptions, although both need to use billing software to invoice their clients periodically.

One open source project can be spotted rising to the challenge: jbilling, an enterprise billing system written for the Java EE platform. It exhibits early signs of dominance in the market as it is the only billing system listed in the Optaros catalog. Optaros is a consulting and systems integration firm specialized in open source products. Also, statistics in SourceForge.net, an open source software development web site hosting more than 100,000 projects, classifies jbilling as the most active and popular billing project. jbilling exhibits all the signs of a healthy open source project on the rise: A consistent increase in downloads, active forums, frequent releases, keen volunteers, etc. jbilling illustrates how a community can push a product to the top to cater to the market’s needs. More reasons for its growth can be found in the actual quality of the product it offers. It is flexible yet robust and can be customized to address an array of business rules, crossing over to many different industries, providing billing software services to companies big and small.

Interestingly, requests for an open source billing system built for telecommunication companies appear on a regular basis in its forums. In fact, telcos have been crying for years for such a product and it is only natural that eventually the call be answered. Should jbilling continue on its path to success, it can be foreseen that it will, soon enough, extend their software to satisfy this growing demand. And when this happens, it will solidly have established itself at the top, becoming the standard in the open source billing software industry.

Coming back to where we started, monopolies generally hold a bad reputation and for cause: in the area of software, it lead to everybody being forced to use Microsoft, with expensive products well known for their lack of innovation and also, their bugs. The Brazilian government illustrated well the benefits of using open source software when, in 2005, it elected abandoning Microsoft in favor of the Linux operating system, citing economics as the number one reason. As Jose Luiz de Cerqueira Cesar, head of IT at Banco do Brasil reported to the BBC during an interview: “If computer users within a geographical region pool their expertise, they can develop software that is perfectly suited to their needs.” So when a monopoly forms in such an organic way, out of the contributions of dedicated volunteers and users, constantly being adjusted to satisfy the exact needs expressed by an ever changing market, when the software itself is available for anybody to use and modify for free and the ultimate result is a software that is well built, well tested and basically bug free, who’s to complain?

Author: Samuel Dekinder
Article Source: EzineArticles.com
Provided by: Guest blogger

Open Source Content Management Systems – An Overview

Publishing documents on the World Wide Web can seem daunting for the self proclaimed ludites out there. Let’s face it HTML, XML, CSS, JavaScript to name just a few of the technologies that you would need to be familiar with in order to develop a truly professional looking website for yourself or your business. Fortunately there is a solution to the problem, it is called a content management system and it is an easier way for just about anyone willing to learn to publish to the Internet.

Some of these content management systems have stemmed from the need of publishing data to the web. CNet for example created one of their own in house content management systems which they later spun off into a separate company called Vignette. Since publishing to the web began to take off in 1995 the development of these systems has really begun to progress. However my focus will be only on open source versions of the web content management systems.

The first open source system that I want to mention is called DotNetNuke (http://www.dotnetnuke.com) which is a AsP.Net based system. By far one of the more popular open source projects out there today DotNetNuke has an avid following of hundreds of thousands of users. The benefits of using this system is the rapid updates to the platform and the intense support you will receive from it community. These are two very important factors when considering an open source system, the level of updates and the support you will receive from its creators or users of the platform. Further the innovations that are built into this system make it one powerful application by any measure. For instance the skinning mechanism is by far one of the easiest to modify and customize and the scheduling processor reduces some of the more mundane tasks of maintaining any website.

However DotNetNuke does not come without any drawbacks. Since this system was developed in ASP.Net this means that you will need at least Visual Studio 2003 Professional or greater in order to truly modify the source and customize the system as you see fit. This can be a serious drawback as the cost of this development platform can run into the hundreds of dollars.

The second open source system that I have some experience in using is called AXCMS.Net (http://www.axcms.net) which is again built upon the .Net platform. This system is as feature rich as other open source systems such as DotNetNuke. However, this system has some definite drawbacks. First is its somewhat difficult setup and deployment problems that can seriously hinder any project. Also, there does not seem to be as an avid user base as DotNetNuke. However the system is as “solid” as they get and you will definitely be rewarded by your efforts once you have the system fully setup and ready to use. Also since this system is really a neat way to get introduced to the development team any updates or customizations you may need will be for a fee from the creators of the system. This really hinders the community support of the system and makes adoption that much harder.

There are many other open source systems out there with some more being developed as I write this article. The main factors when adopting any open source content management systems you should consider are: how well is this system supported by the community and how often is this system updated by its core development team. Even an open source system can have some hidden cost that must be considered before adoption into any business or enterprise.

Author: Richard Callaby
Article Source: EzineArticles.com
Provided by: Duty on LCD/Plasma TV