Skip to content

Software Development News: .NET, Java, PHP, Ruby, Agile, Databases, SOA, JavaScript, Open Source

Methods & Tools

Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!

Open Source

Postgres-BDR 9.4 1.0 Released

PostgreSQL News - Thu, 08/11/2016 - 01:00

Oxford, United Kingdom - August 11, 2016

Bi-Directional Replication for PostgreSQL (Postgres-BDR, or BDR) is the first open source multi-master replication system for PostgreSQL to reach full production status, developed by 2ndQuadrant and assisted by a keen user community. BDR is specifically designed for use in geographically distributed clusters, using highly efficient asynchronous logical replication, supporting anything from 2-48 nodes in a distributed database.


Significant improvements related to stability and bug fixes have been made in this release. The most important factors of this release are:

  • Smoother handling of schema changes (DDL) statements allowing increased operational stability and reduced maintenance.
  • Various bug fixes for operational issues demonstrating high level of maturity
  • Performance tuning, especially of global sequence handling
  • Removal of the now deprecated UDR
  • Extensive documentation improvements based upon user feedback

For a more comprehensive list of release notes, please click here:


Postgres-BDR 9.4 1.0 will be supported until December 2019, when PostgreSQL 9.4 goes EOL. BDR continues to be developed and BDR9.6 will be released within 6 months. The BDR project has already delivered the majority of its code into PostgreSQL core, though it will likely be about 2-3 more years before this functionality is available in PostgreSQL core.


BDR is well suited for databases where:

  • Data is distributed globally
  • Majority of data is written to from only one node at a time (For example, the US node mostly writes changes to US customers, each branch office writes mostly to branch-office-specific data, and so on.)
  • There is a need for SELECTs over complete data set (lookups and consolidation)
  • There are OLTP workloads with many smaller transactions
  • Transactions mostly touching non overlapping sets of data
  • There is partition and latency tolerance

However, this is not a comprehensive list and use cases for BDR can vary based on database type and functionality.

In addition, BDR aids business continuity by providing increased availability during network faults. Applications can be closer to the data and more responsive for users, allowing for a much more satisfying end-user experience.


BDR is developed and supported by 2ndQuadrant. 2ndQuadrant provides professional support for BDR, as well as consultation and training. With our deep knowledge of distributed databases, we will ensure that you are able to evaluate your use case and applications and determine the most suitable product or solution.

BDR is also available in 2ndQuadrant Cloud, initially on AWS.

For more information, please visit the homepage:

Categories: Database, Open Source

PostgreSQL 9.6 Beta 4 Released

PostgreSQL News - Thu, 08/11/2016 - 01:00

The PostgreSQL Global Development Group announces today that the fourth beta release of PostgreSQL 9.6 is available for download. This release contains previews of all of the features which will be available in the final release of version 9.6, including fixes to many of the issues found in the first and second betas. Users are encouraged to continue testing their applications against 9.6 beta 4.

Changes Since Beta 3

9.6 Beta 4 includes the security fixes in the 2016-08-11 Security Update, as well as the general bug fixes offered for stable versions. Additionally, it contains fixes for the following beta issues reported since the last beta:

  • Change minimum max_worker_processes from 1 to 0
  • Make array_to_tsvector() sort and de-duplicate the given strings
  • Fix ts_delete(tsvector, text[]) to cope with duplicate array entries
  • Fix hard to hit race condition in heapam's tuple locking code
  • Prevent "snapshot too old" from trying to return pruned TOAST tuples
  • Make INSERT-from-multiple-VALUES-rows handle targetlist indirection
  • Do not let PostmasterContext survive into background workers
  • Add missing casts in information schema
  • Fix assorted problems in recovery tests
  • Block interrupts during HandleParallelMessages()
  • Remove unused arguments from pg_replication_origin_xact_reset function
  • Correctly handle owned sequences with extensions
  • Many fixes for tsqueue.c
  • Eliminate a few more user-visible "cache lookup failed" errors
  • Teach parser to transform "x IS [NOT] DISTINCT FROM NULL" to a NullTest
  • Allow functions that return sets of tuples to return simple NULLs
  • Repair damage done by citext--1.1--1.2.sql
  • Correctly set up aggregate FILTER expression in partial-aggregation plans

This beta also includes many documentation updates and improvements.

Due to changes in system catalogs, a pg_upgrade or pg_dump and restore will be required for users migrating databases from earlier betas.

Note that some known issues remain unfixed. Before reporting a bug in the beta, please check the Open Items page.

Beta Schedule

This is the fourth beta release of version 9.6. The PostgreSQL Project will release additional betas as required for testing, followed by one or more release candidates, until the final release in late 2016. For further information please see the Beta Testing page.

Categories: Database, Open Source

2016-08-11 Security Update Release

PostgreSQL News - Thu, 08/11/2016 - 01:00

The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 9.5.4, 9.4.9, 9.3.14, 9.2.18 and 9.1.23. This release fixes two security issues. It also patches a number of other bugs reported over the last three months. Users who rely on security isolation between database users should update as soon as possible. Other users should plan to update at the next convenient downtime.

Security Issues

Two security holes have been closed by this release:

  • CVE-2016-5423: certain nested CASE expressions can cause the server to crash.
  • CVE-2016-5424: database and role names with embedded special characters can allow code injection during administrative operations like pg_dumpall.

The fix for the second issue also adds an option, -reuse-previous, to psql's \connect command. pg_dumpall will also refuse to handle database and role names containing line breaks after the update. For more information on these issues and how they affect backwards-compatibility, see the Release Notes.

Bug Fixes and Improvements

This update also fixes a number of bugs reported in the last few months. Some of these issues affect only version 9.5, but many affect all supported versions:

  • Fix misbehaviors of IS NULL/IS NOT NULL with composite values
  • Fix three areas where INSERT ... ON CONFLICT failed to work properly with other SQL features.
  • Make INET and CIDR data types properly reject bad IPv6 values
  • Prevent crash in "point ## lseg" operator for NaN input
  • Avoid possible crash in pg_get_expr()
  • Fix several one-byte buffer over-reads in to_number()
  • Don't needlessly plan query if WITH NO DATA is specified
  • Avoid crash-unsafe state in expensive heap_update() paths
  • Fix hint bit update during WAL replay of row locking operations
  • Avoid unnecessary "could not serialize access" with FOR KEY SHARE
  • Avoid crash in postgres -C when the specified variable is a null string
  • Fix two issues with logical decoding and subtransactions
  • Ensure that backends see up-to-date statistics for shared catalogs
  • Prevent possible failure when vacuuming multixact IDs in an upgraded database
  • When a manual ANALYZE specifies columns, don't reset changes_since_analyze
  • Fix ANALYZE's overestimation of n_distinct for columns with nulls
  • Fix bug in b-tree mark/restore processing
  • Fix building of large (bigger than shared_buffers) hash indexes
  • Prevent infinite loop in GiST index build with NaN values
  • Fix possible crash during a nearest-neighbor indexscan
  • Fix "PANIC: failed to add BRIN tuple" error
  • Prevent possible crash during background worker shutdown
  • Many fixes for issues in parallel pg_dump and pg_restore
  • Make pg_basebackup accept -Z 0 as no compression
  • Make regression tests safe for Danish and Welsh locales

The libpq client library has also been updated to support future two-part PostgreSQL version numbers. This update also contains tzdata release 2016f, with updates for Kemerovo, Novosibirsk, Azerbaijan, Belarus, and Morocco.

EOL Warning for Version 9.1

PostgreSQL version 9.1 will be End-of-Life in September 2016. The project expects to only release one more update for that version. We urge users to start planning an upgrade to a later version of PostgreSQL as soon as possible. See our Versioning Policy for more information.


All PostgreSQL update releases are cumulative. As with other minor releases, users are not required to dump and reload their database or use pg_upgrade in order to apply this update release; you may simply shut down PostgreSQL and update its binaries. Users who have skipped one or more update releases may need to run additional, post-update steps; please see the release notes for earlier versions for details.

Links: Download Release Notes Security Page Versioning Policy

Categories: Database, Open Source

Eclipse IoT Day @ ThingMonk | Program Live

Eclipse News - Wed, 08/10/2016 - 15:16
Plan to attend the Eclipse IoT Day at ThingMonk in London on Sept. 12!
Categories: Open Source

ECE 2016 Program Schedule Announced

Eclipse News - Mon, 08/08/2016 - 21:00
The ECE program schedule is now available on the website. Register early for best pick of the tutorials & lowest price.
Categories: Open Source

Eclipse Summit India 2016

Eclipse News - Mon, 08/08/2016 - 20:00
India's premier conference nurturing the Eclipse Ecosystem is just around the corner!
Categories: Open Source

Which languages convey the most information in the least space? Introducing the Unimorph dataset.

Google Open Source Blog - Mon, 08/08/2016 - 18:00
Several years ago a science journalist asked me which languages could pack the most information into a 140-character Tweet. Because Twitter defines a character roughly as a single Unicode code point, this turns out to be an easy question to answer. Chinese almost certainly rates as the most “compact” language from that point of view because a single Chinese character represents a whole morpheme (in linguist terminology, a minimal unit of meaning) whereas an English letter only represents a part of a morpheme. The Chinese equivalent of I don’t eat meat, which in English takes 16 characters including spaces is 我不吃肉, which takes just four.

But this question relates to a broader question that as a linguist I have often been asked: which languages are the most “efficient” at conveying information? Or, which languages can convey the same information in the smallest amount of space? Untethered by the idiosyncrasies of Twitter, this question becomes quite difficult to answer. What do you mean by “space”? Number of characters? Number of bytes? Number of syllables? Each of these has its own problems. And perhaps more crucially, what do you mean by “information”? The Shannon notion of information does not straightforwardly apply here.

A group of us at Google set out to answer this question, or at least to provide the form that an answer would have to take. We had the resources and experience needed to annotate data in multiple languages, and we were able to divert some of those resources to this task. The results were published in a paper presented at the 2014 International Conference on Language Resources and Evaluation in Reykjavík, Iceland.

We are now releasing the data on GitHub. The data consist of 85 sentences typical of the kinds of sentences generated by Google Now, translated into eight typologically diverse languages: English, French, Italian, German, Russian, Arabic, Korean, Chinese, which include some highly inflected and uninflected languages, and various types of morphology including inflectional and agglutinative. The data were annotated by one to three annotators depending on the language, with morphological information, counts of the marked features and other information. The main data file is in HTML, color coded by language, which makes it easy to browse but also easy to extract into other formats.

Since the basic information conveyed by each sentence can be assumed to be the same across languages, the main focus of the research was on the additional information that each language marks, and cannot avoid marking. For example, the English sentence:

Use my location for the search results and other services.
has the French translation:

Utilisez ma position pour les résultats de recherche et d'autres services.
The verb ending -ez, in boldface above marks “addressee respect”, a bit of information that is missing from the English original.  One could have used a different ending on the French verb, but then that would not avoid this bit of information—it would be choosing to mark lack of respect, or familiarity with the addressee.

In the paper we tried various ways of measuring the differing information content of the languages relative to various definitions of “space”. Considering all the factors together, we concluded that the languages that conveyed the most information in a given amount of space were highly inflected languages like Russian, with uninflected languages like Chinese actually being the “least efficient” at conveying information.

We don’t expect this to be the final answer, which is why we are releasing the data as open source in the hopes that others will find it useful and maybe can even extend it to more sentences or a wider variety of languages. Ultimately though, any answer to the question of which languages convey the most information in the smallest amount of space must seriously address what is meant by “information”, and must pay heed to the famous maxim by the Russian linguist Roman Jakobson (1959) that “languages differ essentially in what they must convey and not in what they may convey.”

By Richard Sproat, Research Scientist
Categories: Open Source

Projects of the Week, August 8, 2016 Front page news - Mon, 08/08/2016 - 05:12

Here are the featured projects for the week, which appear on the front page of

Simplicity Linux

Simplicity Linux uses Puppy Linux and derivatives as a base, uses the XFCE window manager, and comes in 3 editions: Netbook, Desktop and Media. Netbook features cloud based software, Desktop features locally based software and Media edition is designed to allow people who want a lounge PC to access their media with ease.
[ Download Simplicity Linux ]

Bodhi Linux

Bodhi is a minimalistic, enlightened, Linux desktop.
[ Download Bodhi Linux ]

Warzone 2100

You command the forces of “The Project” in a battle to rebuild the world after mankind has almost been destroyed by nuclear missiles. The game offers a full campaign with optional (but strongly recommended!), videos, battle against four factions, multi-player and single-player skirmish modes, and an extensive tech tree and a full unit designer. Multi-player is also cross-platform, battle your friends with any OS, Windows, Linux or Mac, it all works seamlessly! We also offer 100% portable Windows builds, take the game and install it anywhere! Our source repo is now at If you are using linux, and want a .deb, then please get the latest version available from (They are not affliated with us, but they do have the latest builds!) Warzone 2100 works on both 32 & 64 bit Windows Vista or higher, 32 or 64 bit Linux, 32 or 64 bit Macs.
[ Download Warzone 2100 ]


An open source NES Emulator for Windows and Unix that features solid emulation accuracy and state of the art tools for power users.
[ Download FCEUX ]

Battle for Wesnoth

The Battle for Wesnoth is a Free, turn-based tactical strategy game with a high fantasy theme, featuring both single-player, and online/hotseat multiplayer combat. Fight a desperate battle to reclaim the throne of Wesnoth, or take hand in any number of other adventures.
[ Download Battle for Wesnoth ]

Money Manager Ex

Money Manager Ex (mmex) is an easy to use, money management application. It is a personal finance manager. It can be used to track your net worth, income vs expenses etc. It runs on Windows, Linux and Mac OSX.
[ Download Money Manager Ex ]


Windows hooker – intercepts system calls to make fullscreen programs running in a window, to support a better compatibility, to enhance video modes and to stretch timing. It is typically very useful to run old windows games.
[ Download DxWnd ]

Pandora FMS: Flexible Monitoring System

Pandora FMS is an enterprise-ready monitoring solution that provides unparalleled flexibility for IT to address both immediate and unforeseen operational issues, including infrastructure and IT processes. It uniquely enables business and IT to adapt to changing needs through a flexible and rapid approach to IT and business deployment. Pandora FMS consolidates all the needs of modern monitoring (ITOM, APM, BAM) and provides status and performance metrics from different operating systems, virtual infrastructure (VMware, Hyper-V, XEN), Docker containers, applications, storage and hardware devices such as firewalls, proxies, databases, web servers or routers. It’s highly scalable (up to 2000 nodes with one single server), 100% web and with multi-tenant capabilities. It has a very flexible ACL system and several different graphical reports and user-defined control screens.
[ Download Pandora FMS: Flexible Monitoring System ]


Rescatux is a GNU/Linux repair cd (and eventually also Windows) but it is not like other rescue disks. Rescatux comes with Rescapp. Rescapp is a nice wizard that will guide you through your rescue and repair tasks. When the wizard is not able to solve your problem you can also enjoy of Rescatux unique support features: * Chat: Open the chat for asking help directly in Rescatux channel. * Share log: After running an option you can share its log (the action registry that it has done) so that in the chat they can help you better. Or better, even, you can help debug and fix Rescatux bugs on the fly. * Share log on forum: Prepares a forum post alike text so that you can just copy and paste it in your favourite forum. Logs are nicely inserted into it with [CODE] symbols. * Boot Info Script: Run Boot Info Script option to share your computer configuration (specially boot one).
[ Download Rescatux ]

Categories: Open Source

Programming Basics: The Function Signature

DevX: Open Source Articles - Fri, 08/05/2016 - 19:21
See how paying attention to your function signature, utilizing language features where possible and using immutable data structures and pure functions can get you pretty far.
Categories: Open Source

Making Rubyists more comfortable on Google Cloud Platform

Google Open Source Blog - Fri, 08/05/2016 - 18:00
One of the many open source efforts at Google is the Google Cloud Platform (GCP) native libraries for our most popular languages. One of these libraries is the gcloud-ruby project on GitHub which is released as the gcloud gem on There are several gems for accessing Google Cloud Platform resources from Ruby but this gem is different. It is hand coded by Rubyists for Rubyists and that has some distinct advantages.

Many of us have had experience working with libraries that are clearly ported from another language. I usually talk about them as Ruby with a Java accent or Python with a Perl accent. Generally they work just fine but you can run into some low level friction — sometimes things just don’t feel right. Native gems written by members of the community solve this problem. In the case of gcloud-ruby there are some really concrete examples.

First, gcloud-ruby uses syntax that is similar to other popular Ruby libraries. For example, the syntax for specifying a table schema in BigQuery (Google Cloud Platform's very large scale data warehouse) looks like this:

table = dataset.create_table "baby_names" do |schema|
schema.string "name"
schema.string "sex"
schema.integer "number"

Creating the same table in popular Ruby on Rails looks like this:

create_table "baby_names" do |schema|
schema.string "name"
schema.string "sex"
schema.integer "number

The two are nearly identical. That makes getting up to speed on BigQuery easier and quicker than it would be if the Ruby library didn't use patterns that are already known to the majority of Rubyists. 
Another way the gcloud-ruby library meets the community where it is at is by embracing the community's fondness for doing things several different ways. In Ruby there are often several correct ways to do a given task.
The gcloud-ruby library is no exception. There are a few different ways to authenticate and create the objects you use to interact with the API. Ruby also has many common methods that have aliases. In the standard library Enumerable#map and Enumerable#collect actually run the same code path for example. In gcloud-ruby the vision API uses aliases. Google Cloud Vision provides a single endpoint: annotate. gcloud-ruby has an annotate method but also aliases this method as mark and detect if those make more sense to you (detect is the method that makes the most sense to my brain so that's the one I use). By providing a couple of different aliases it can mean the first thing you try is more likely to work. This speeds up development time and makes learning the library easier. 
The last way the gcloud-ruby gem makes Rubyists feel at home is by having comprehensive tests, a common value and popular discussion topic for the Ruby community. gcloud-ruby uses minitest-spec for testing, a popular choice that most Rubyists can easily read. When I was learning the storage API I looked at the tests for storage to learn how to use the library. There is outstanding documentation as well for those who prefer learning that way but I'm so used to looking at tests that I really appreciated that gcloud-ruby has well written and easily accessible tests.
Above are three examples of how hand-coded libraries from within the community can improve the user experience when learning to use tools. Of course, doing all the development on GitHub in the open also helps. Users can easily see what bugs people have run into and what features are next up in the production queue. And if a user has a feature request (like the previously mentioned Cloud Vision support) they can create a GitHub issue.
If you’re a Rubyist, give gcloud-ruby a shot and let us know what you think!
By Aja Hammerly, Developer Advocate
Categories: Open Source

How to Overcome the Biggest Hurdle of Any Open Source Project Front page news - Fri, 08/05/2016 - 05:45

It isn’t the coding; it’s not even the starting that’s the hardest to do when developing open source software.

It’s making people care.

Making people care enough that they use the software. Making people care enough that they contribute to the project. Making people care enough that they voluntarily form a community around the project.

Making people care is (or should be) the key that starts the whole open source project engine, and keeps it going.

Why Should People Care?

Perhaps you feel that your software will be awesome, and it doesn’t matter that people won’t care initially. But for any open source project to succeed, a large part of its inception should focus on who will actually use the software. Of course the software matters as well; but as we all know, in community-based open source it ceases to matter when you’re the only one who thinks it matters.

So why should people care about your project? This is a question you need to be able to answer right from the start if you ever hope to achieve growth and longevity for your project.

How to Make People Care

Of course you can’t force people to care. However, you can persuade them. There are several ways you can do this:

  • Select technology with broad usage. Creating niche projects is fine, as long as you’re sure that you’ve got a good base of interested users and contributors there. If you’re unsure however, it’s best to choose a project with a number of different applications, or technology that most people use every day like operating systems, databases, etc. These are more likely to generate outsider interest and contributions.
  • Zone in on a real need. Let your software meet a real need in the market and meet it exceptionally. This will guarantee that people take notice of it. Meeting a need could be a matter of timing, or it could be uncovered with research. A need that is uncovered through diligent research is more likely to have long term applications, but will take some time and effort on your part.
  • Clearly specify the value of the project, and the value that people can add to and get from the project. When people understand the value of a project , the value they can get from a project and how they can be valuable to a project, getting them to care and contribute becomes easy. So make sure you do your part. Clearly specify on descriptions the many applications of your software and how it can benefit users and contributors. Make sure you use jargon-free, easy-to-understand language.
  • Develop a culture and architecture of inclusion. Sometimes people just want to feel welcome in order to start caring and contributing. Some people just need encouragement. Make sure you give it. Invite participation constantly, and make it easy for people to participate by writing good documentation and creating modular code that’s easier for contributors to work on.

Once you get people to care about your project, don’t leave them behind. Keep nurturing your community by being supportive of their efforts and sympathetic to their needs. Caring can be contagious, so when you show you care the rest of the community can follow suit.

Categories: Open Source

August 2016, “Staff Pick” Project of the Month – LibreCAD Front page news - Wed, 08/03/2016 - 05:20

For our August “Staff Pick” Project of the Month, we selected LibreCAD, a free Open Source CAD application for Windows, Apple, and Linux. Ries van Twisk and Ravas Mi, two of the developers behind the project shared some of their thoughts about the project’s history, purpose, and direction.

SourceForge (SF): What made you start this project?
Ries van Twisk (RVT): I was working on a CNC machine and my wife asked me why it took so long to let the machine do its job. I told her that I needed to make a drawing, then open another application to generate g-code. So I decided to add a module to QCad so I can do it in one go. Working a bit on this project I came to the conclusion I needed to re-write the code for QT4 because Qt3 was old, which QCad was based on. I showed this to a few people on the LinuxCNC IRC channel and they urged me to put the codebase online. One thing led to another and we gave this project a name, ‘LibreCAD’. I never was able to finish the g-code creation module, but instead we now have a continuation of open source CAD that is available for everybody.

SF: Has the original vision been achieved?
RVT: The very original vision (see previous answer) no but after we decided to create the LibreCAD fork, I do believe we achieved our goal.

SF: Who can benefit the most from your project?
RVT: Anybody that needs to make simple CAD drawings.

SF: What’s the best way to get the most out of using LibreCAD?
RVT: Read our wiki and start using the manual, and of course have a project in mind you want to work on.

SF: What has your project team done to help build and nurture your community?
RVT: Most important for us is to be friendly, help each other out, fix bugs and continue improving LibreCAD.
Our community is active on IRC as well as our forum. We are not huge compared to other projects, but we can sustain ourselves.

SF: Have you all found that more frequent releases helps build up your community of users?
RVT: We are too small for frequent releases. This is due to our team size and we are all doing this in our free time, most of us have a partner and/or children and they come first. We try to release as often as possible but within reason.

SF: What was the first big thing that happened for your project?
RVT: We don’t have ‘the big thing’ but perhaps if I have to think of something for me personally is that LibreCAD is a working project with a solid past and future.

Ravas Mi: (For me it was) support for reading DWG files and exporting MakerCAM SVG files; these are not part of the free version of QCAD, which LibreCAD forked from.

Those came first but I think some of my contributions are worth mentioning.

The new custom toolbar and custom menu system greatly improves user efficiency. With custom menus (think right-click) you don’t need to move out of the drawing area to switch tools or snap modes. Command users might even find themselves more efficient.

Users can now select their own Qt style sheets, which allows for dramatically changing the program’s appearance.

The release which included those also included many other new features and important bug fixes.

SF: What’s been your mantra throughout the development process?
RVT: Keep doing what you do and make LibreCAD better with each release. It doesn’t have to go fast, it doesn’t have to go frequently as long as it happens.

SF: How has SourceForge and its tools helped your project reach success?
RVT: SF has always been a stable and working platform for us where our user base could download the binaries.

SF: What is the next big thing for LibreCAD?
RVT: We are working on a new version of LibreCAD, currently we call it LibreCAD 3 for lack of better naming. This year we are making big steps with the current two GSoC students. We are far from having a product, but we keep improving and working on it and one day this will be our new LibreCAD.

SF: How long do you think that will take?
RVT: A few years more. Sometimes the project stands still due to lack of time, but we try during GSoC to get 1 or two developers working on the project and I am working on it in my free time because I like c++.

SF: Do you have the resources you need to make that happen?
RVT: At this moment we lack resources, but we will manage, obviously we can use more help.

SF: If you had to do it over again, what would you do differently for LibreCAD?
RVT: I would have more actively asked for help from developers.

SF: Is there anything else we should know?
RVT: We need a few (2 at most) developers that have good knowledge of math and c++ and perhaps a bit of lua.

[ Download LibreCAD ]

Categories: Open Source

SourceForge Improvements: It’s easier than ever to start a project Front page news - Tue, 08/02/2016 - 05:32

Over the past few weeks, we’ve rolled out a series of improvements to make it easier to start a project on SourceForge. We started by adding a “Create” button on the header of every page, so you always can find it.

On the project registration form we now give you faster name suggestions and show more available tools & features. SourceForge projects have a lot of tools available, and now we show them all – including Web Hosting and Mailing Lists. Bonus: if you’re not logged in when you get to the registration form, we show a nice login overlay so you can still see what the form is like while you log in.

Screenshot of project registration form

As soon as you’ve created your project, the new welcome tour guides you through some of the key parts of your project. For example, you’ll see how to customize the tools you want to use on your project, categorize and describe your project, and more.

Screenshot of project welcome tour

We also send you a nice project welcome email, so you’ve got a reference in case you forget where your project is. And even better – when you’re on SourceForge, your account menu lists your projects, so you’ve got easy access to all of your projects.

Have a wonderful time making open source!

Categories: Open Source

Stories from Google Code-in: KDE, MetaBrainz and Haiku

Google Open Source Blog - Mon, 08/01/2016 - 18:00
Google Code-in is our annual contest that gives students age 13 to 17 experience in computer science through contributions to open source projects. This blog post is the second installment in our series reflecting on the experiences of Google Code-in 2015 grand prize winners. Be sure to check out the first post in the series.

This week we profile three more grand prize winners from Google Code-in 2015. These students came from all around the world to celebrate with us in June after successfully completing 692 tasks that resulted in significant contributions to the participating open source projects.

Google Code-in 2015 Grand Prize Winners and Mentors were treated to a cruise around San Francisco Bay.
Students were paired with mentors who guided them as they learned both new technologies and how to collaborate on real-world projects. While most students had some programming experience, many were new to open source. In the end, they learned new skills, connected with open source communities and many will continue to contribute to open source projects.
We’re proud of all of the participants and grateful to the mentors who helped them. We invited the contest winners to write about their experience and many took us up on the offer. Here are their stories:
First up today is Imran Tatriev, a student from Kazakhstan who decided to work on the KDE project because loved their philosophy and had experience with C++ and Qt. He was a finalist in Google Code-in 2014 when he worked with the OpenMRS project.
Imran’s work on KDE included contributing to projects such as KDevelop, Marble and GCompris. His biggest challenge was working on the KDevelop IDE’s debugger where he was tasked with highlighting crashed threads. Highlighting the crashed thread was trivial, finding the thread that had crashed was not. It took him five days to solve that problem and he credits his mentor with helping him to work through it.
In the end, Imran learned a lot about regular expressions, the architecture of large software projects, C++ and unit testing. What did he like most about his Google Code-in experience? Imran writes: “The most valuable moments were meeting wonderful and smart people.” He plans to continue working with KDE and apply for Google Summer of Code.
Next is Caroline Gschwend, a student from the US who worked on the MetaBrainz project. Both of her parents are computer scientists and she credits them with spurring her interest.
A homeschool student with a unique approach to education, Caroline loves to learn and voraciously consumes free online resources. She had this to say: “I think that free, online learning is an amazing benefit to our society. With access to a computer and the internet, anyone, anywhere, can learn anything.”
Caroline discovered Google Code-in through her mother who had, in turn, discovered the contest through Google for Education. Caroline dug in and decided it was right up her alley. She loved that it embraced beginners with open arms and introduced new people to open source. Ultimately, she decided to work with MetaBrainz because, as a classically trained violinist, MusicBrainz piqued her interest. Their projects are primarily written in Perl and Python and, while Caroline was fluent in Java, it was too interesting to pass up.
As with most students, Caroline found collaboration to be a big part of the learning curve -- from GitHub to Git and IRC. Her mentors and other community contributors on IRC helped Caroline through the process and, looking back, she found that collaboration to be her favorite part of the whole experience. She loved that the mentors helped her to produce professional quality work rather than focusing on quantity.
Google Code-in gave Caroline a chance to learn about collaboration, Inkspace, icon design, web development and more. She has continued her work in open source and plans to apply for Google Summer of Code.
The last student we’re highlighting today is Vale Tolpegin, a student from the US who worked on the Haiku project, an open source operating system for personal computers. He also participated in Google Code-in 2014 but didn’t feel his skills were sharp enough to attack the more challenging tasks, like the ones he tackled this time around for Haiku.
Vale took on a wide range of tasks from documentation to application development, his favorite being the creation of the Haiku Hardware Repository. The repository is a Django website that lets people search and share hardware tests to determine if a given machine will work with Haiku.
He ran into a sticky issue early on, spending nearly a week finding a race condition within an application maintained by Haiku. Vale found it frustrating, but his mentors helped him see it through to the end. That wasn’t the only big challenge he ran into and, ultimately, bested: he spent another week debugging a Remote Desktop Application, software which had a very large code base.
Despite the two time consuming challenges, Vale managed to accomplish a lot more during the contest, including building a graph plotter and fixing bugs in the Haiku package manager. Vale had this to say:
“After finishing GCI, I have continued to work with Haiku and the experiences I have gained will continue to have an impact on me for years to come. Participating in GCI has truly been a life-­changing experience!”
Thank you to Imran, Caroline and Vale for their contributions to open source and for sharing their Google Code-in experiences with us. Stay tuned, we’ve got two more posts coming in this series!
By Josh Simmons, Open Source Programs Office
Categories: Open Source

August 2016, “Community Choice” Project of the Month – Eclipse Tomcat Plugin Front page news - Mon, 08/01/2016 - 05:33

For our August “Community Choice” Project of the Month, the community elected Eclipse Tomcat Plugin, which offers simple handling of a tomcat server in Eclipse IDE. Current project developer Markus Keunecke shared some thoughts about the project’s history, purpose, and direction.

SourceForge (SF): Tell me about the Eclipse Tomcat Plugin project please.
Markus Keunecke (MK): The Eclipse Tomcat Plugin does exactly what its name promises: It integrates the Apache Tomcat server into the Eclipse development environment for easy development and debugging of Java web application. It is a highly focused project, so it is very simple to set up and requires very little system resources.

SF: What made you start this?
MK: The project was originally started by Bruno Leroux in 2002 as Sysdeo Eclipse Tomcat Launcher Plugin and maintained for over a decade. In 2014, however, the plugin became incompatible to recent versions of Eclipse/Tomcat. The project founder had moved on to other projects. So I had a look into the source code and fixed the compatibility issue. While I was at it, I also added a feature to simplify configuration.

SF: Has the original vision been achieved?
MK: The basic philosophy of the Tomcat plugin is, that it should just work. People should hardly notice its existence, although they use it on a daily basis. Think of a very good public transport system that is used by commuters every day.

SF: Who can benefit the most from your project?
MK: My project is targeted at Java Web Developers.

SF: What core need does the Eclipse Tomcat Plugin fulfill?
MK: The plugin supports Java Web Developers by integrating Tomcat into the development environment. It enables developers to use Eclipse’s powerful debugging capabilities such as break points, variable inspection and hot code replacement.

While the plugin does very smart work in the background, the user interface and configuration is very easy.

SF: What has your project team done to help build and nurture your community?
MK: We’ve done a number of small things creating a huge impact. The main idea behind those actions was to make the project easy to be found. For example the project name is exactly the phrase people would use in search engines. We moved from a zip file on a random website to a listing in the Eclipse Marketplace and an update site in the SourceForge file release system.

The SourceForge project makes the project visible to potential contributors by offering a bug tracker and Git repository.

SF: Have you all found that more frequent releases helps build up your community of users?
MK: Yes, releases are a form of free advertisement. Many software directories, such as the Eclipse Marketplace, have a prominent list of new & updated software.

This is of course also true for the community of contributors: If someone goes through the trouble of reporting a bug or even submitting a pull request, they’ll be rewarded by a timely response.

SF: What was the first big thing that happened for your project?
MK: In 2014, I fixed the compatibility issue for myself and my co-workers at HIS eG ( In addition I added a small feature to simplify my own life. I decided to release my efforts to the public just following the example of the original author.

After a while I was surprised by a mail from SourceForge telling me that the Eclipse Tomcat Plugin was project of the week because of a growing number of downloads. At that time the project files were downloaded several thousand times a week. At first I did not believe the numbers, thinking that most of those downloads were caused by automatic update checks. But the statistics of successful installations from the Eclipse Marketplace also showed huge numbers.

This was the point when we realized that the project is useful to a number of people from all around the world. The SourceForge statistics shows China, USA, Japan and India even above my own country Germany.

SF: How has SourceForge and its tools helped your project reach that success?
MK: SourceForge provides easy access to development infrastructure, such as Git, issue tracking and download service. As a developer of an open source project you can focus on your project without wasting a lot of time on setting up those services on your own.

Since the project is on SourceForge people started to contribute code to the project.

SF: What is the next big thing for Eclipse Tomcat Plugin?
MK: The project was started at a time before automatic testing became popular. It is very mature now and there are little dramatic changes being committed. Therefore adding unit tests was not our top priority. But having said that, the small test coverage feels wrong and creates a bad consciousness.

SF: How long do you think that will take? And do you have the resources you need to make that happen?
MK: It is a long term goal. We can start with adding more tests here and there. Especially target areas that are due to refactoring and changes. Luckily there is no external pressure as this is a purely internal goal.

SF: If you had to do it over again, what would you do differently for Eclipse Tomcat Plugin?
MK: We would have moved from providing zip-file on a random website to a hosting service like SourceForge with Git and bug tracker much earlier.

SF: Is there anything else we should know?
MK: We are very happy that SourceForge has stopped flirting with the dark side and has recognized that its reputation is a key asset. Actually we are very impressed that the bad installer was taken offline within the first week after the purchase of SourceForge by BIZX, LLC.

[ Download Eclipse Tomcat Plugin ]

Categories: Open Source

Projects of the Week, August 1, 2016 Front page news - Mon, 08/01/2016 - 05:10

Here are the featured projects for the week, which appear on the front page of

Double Commander

Double Commander is a cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas.
[ Download Double Commander ]


Tool Command Language (Tcl) is an interpreted language and very portable interpreter for that language. Tcl is embeddable and extensible, and has been widely used since its creation in 1988 by John Ousterhout. Bug reports to Follow code development at
[ Download Tcl ]


With Hugin you can assemble a mosaic of photographs into a complete immersive panorama, stitch any series of overlapping pictures and much more.
[ Download Hugin ]

Battle for Wesnoth Android Port

[ Download Battle for Wesnoth Android Port ]

Miranda IM

Miranda IM is an open source, multi-protocol instant messaging client designed to be very light on system resources, extremely fast and customizable. A powerful plugin-based architecture make Miranda IM one of the most flexible clients on the planet.
[ Download Miranda IM ]

Universal Media Server

Universal Media Server is a DLNA-compliant UPnP Media Server Universal Media Server supports all major operating systems, with versions for Windows, Linux and Mac OS X. The program streams or transcodes many different media formats with little or no configuration. UMS is powered by MEncoder, FFmpeg, tsMuxeR, AviSynth, MediaInfo and more, which combine to offer support for a wide range of media formats Check out the list of media renderers here:
[ Download Universal Media Server ]


Bluestar Linux is an Arch Linux-based distribution, built with an understanding that people want and need a solid Operating System that provides a breadth of functionality and ease of use without sacrificing aesthetics. Bluestar is offered in three edtions – desktop, deskpro and developer – each tailored to address the needs of a variety of Linux users. Bluestar can be installed permanently as a robust and fully configurable operating system on a laptop or desktop system, or it can be run effectively as a live installer and supports the addition of persistent storage for those who choose not to perform a permanent installation. A Bluestar Linux software respository is also maintained in order to provide additional tools and applications when needed or requested. Bluestar provides the following features: Up-to-date Kernel Wide Variety of Applications – Always Current Versions Full Development / Desktop / Multimedia Environment
[ Download BluestarLinux ]

GO Contact Sync Mod

+++ NEWS +++ The newest versions of Google APIs client Library for .NET dropped support for .NET 4.0. Minimum requirement for GO Contact Sync Mod (starting with v3.10.0) is .NET 4.5 which is not working on Windows XP. —————————————————– GO Contact Sync Mod synchronizes your Microsoft Outlook contacts with your Google Mail address book, including pictures, categories and notes. Since version 3.7.0 it also syncs your Outlook Calendar Appointments on demand to Google Calendar. This Mod fork adds many enhancements and bug fixes to the obviously dead project ‘Go Contact Sync’. Please find some guidelines how to sync your mobile phone contacts with Google Contacts here:
[ Download GO Contact Sync Mod ]

Nagios Core

Nagios network monitoring software is a powerful, enterprise-class host, server, application, and network monitoring tools. Designed to be fast, flexible, and rock-solid stable. Nagios runs on *NIX hosts and can monitor Windows, Linux/Unix/BSD, Netware, and network devices.
[ Download Nagios Core ]

Categories: Open Source

Stories from Google Code-in: FOSSASIA and Haiku

Google Open Source Blog - Fri, 07/29/2016 - 21:43
Google Code-in is our annual contest to help pre-university students gain real-world computer science experience by taking on tasks of varying difficulty levels with the help of volunteer mentors. These tasks are created by open source projects so while learning, the students are contributing to the software many of us use on a daily basis.

The finalists and winners for our 2015/2016 season were announced in February and, in June, the grand prize winners joined us for four days of learning and celebration. Students and their guardians came from all around the world. One of my favorite things, as one of the Googler hosts, was seeing the light bulbs go on above parents’ heads as they came to understand open source and why it’s so important. These parents and guardians were even more proud of the students as they learned how much their teenager has contributed to the world through participating in Google Code-in.

We’ve invited contest winners and organizations to write about their experience and will be sharing their stories in a series of blog posts. This marks the first post in the series.

Google Code-in 2015 Grand Prize Winners and Mentors
Let’s start with Jason Wong, a student from the US who worked with FOSSASIA. FOSSASIA supports open source developers in Asia through events and coding programs.
Jason got into computer science during middle school at a summer camp where he built a website describing the differences between Linux, OS X, and Windows.  He dove deeper into web development by learning PHP and JavaScript through YouTube videos. He enjoyed being able to build more complex and dynamic websites. Like many new developers, Jason became very confident but did not concern himself with important aspects of programming like testing.
He learned about Google Code-in when Stephanie Taylor, fellow open source program manager who manages the GCI program here at Google, gave a talk at his school. Jason dove right in picking FOSSASIA as the project he would contribute to.
FOSSASIA offered Jason a chance to learn a lot about development and open source. He worked on their event pages, integrated Loklak and added an RSS section to their website, gaining experience with version control, Docker, Pharo and Node.js in the process. Most importantly, Jason learned about collaboration. He had this to say:
“Collaboration is so important in the open source community as it allows everyone to come together to help the world. Google Code-in has persuaded me to contribute to open source in the future.”
Next up we have Hannah Pan, another US student. She chose to work on Haiku, an open source operating system built for personal computers, because it used the C/C++ language which she was already confident with.
Hannah got into computer science through a high school AP course and discovered Google Code-in through this blog (woohoo!). She decided to participate even though it had already been underway for two weeks. Aiming just to make the top 10 in order to have a chance at being a finalist (and earn a hoodie), Hannah finished as a grand prize winner! 
The learning curve was steep: *nix commands, build tools and GitHub all presented new challenges. She was surprised how much code she had to sift through sometimes just to isolate the cause of minor bugs.
Like all of the participants, Hannah found her mentors to be crucial in providing both technical guidance and moral support. She explained, “I was amazed at my mentors’ expertise, dedication, modesty, and high standards. They taught me to strive for excellence rather than settle for mediocrity.”
Among other things, Hannah added localization support to the Tipster app, fixed extractDebugInfo, and even wrote a how-to article relating to the work. Reflecting on her experience, Hannah wrote:
“On the technical side, not only have I learned a lot, but I have realized how much more I have yet to learn. In addition, it has taught me some important life skills that no doubt will benefit me in my future endeavors. I’d like to thank my mentors and other students who inspired me and pushed me to do my best.”
Thank you to Jason and Hannah both for contributing to open source and sharing their Google Code-in experiences with us. Stay tuned as we continue this series in our next blog post!
By Josh Simmons, Open Source Programs Office
Categories: Open Source

The Other C-word that’s Crucial to Open Source Front page news - Fri, 07/29/2016 - 05:07

What starts with the letter C and is considered the most important thing in open source software development?

I’m sure you, like most people, will answer code. And you would be right. But there’s another C-word that’s just as important, if not more important than code in the world of open source development, and that’s communication.

Why Communication?

It’s easy to think of communicating about code as only secondary to the code itself. This thinking however, undervalues the role of communication in open source. As renowned developer Martin Fowler once said, “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” As much as open source programs are initially written for computers, ultimately, they are to be used by human beings and as such need to be understood by human beings.

A great deal of this understanding comes from written communication, better known in open source as documentation. In open source development practically every step involves documentation. From bug reports and descriptions to tutorials and API docs, written communication is deeply embedded and required in each process. This is what enables people to understand the software, and in understanding it they are able to use, adapt or contribute to it. Without proper written communication, none of these things which are vital to the continuation and betterment of an open source project would ever occur.

With this in mind we begin to see that communication is indeed as significant as code in open source development. But we’ve merely scratched the surface.

Proper Communication in Conversation

Communication not only comes in the form of documentation in open source. It also comes in conversational form.

As we all know, open source development often requires people working together and working with users and contributors who may not be as skilled or knowledgeable in open source development. Newbies offering bad code or not following protocol can be frustrating for developers and maintainers, but these neophytes mustn’t be dealt with harshly. Doing so would only extinguish whatever desire they had at working on the project, and projects would lose a potential long-term contributor and community member.

This is another area of open source development where proper communication is key. By expressing your ideas properly and clearly when conversing with newbies, you help them to better understand what is required and what it is that they need to do in order to improve. This helps not only them but the project as well, which in the long run will benefit from continued usage and added contributions from newbies who eventually turn into full-fledged contributors.

Communicating to Sell the Software

There are three major areas of open source software development that demand exceptional communication. We’ve pointed out the first two: documentation and community development. The third is marketing.

No matter how well you’ve written the code and its accompanying documentation, and even if you have a community that communicates well internally, you still need marketing to push your project outward. Marketing means the difference between a great project that no one knows about or uses, and a project that’s making a difference in the world.

Effective marketing of course, requires exceptional communication skills. It involves speaking at conferences and meetups, writing blogs and even social media posts. In a sea of similar open source projects, these marketing techniques are your project’s lifeboat and flare gun, getting it noticed and picked up by interested users and contributors.


Perhaps you already possess brilliant communication skills, and perhaps you don’t. In the latter case, you can always hand that responsibility over to a more qualified team member. What is important here is that you do not take communication for granted as it is, without a doubt, pivotal to the success and development of any open source project.

Categories: Open Source

.NET Core 1.0 and Cross-Platform Development

DevX: Open Source Articles - Thu, 07/28/2016 - 22:04
Microsoft recently announced the release of .NET Core 1.0, a truly cross-platform runtime and development environment.
Categories: Open Source

Cross-Platform Mobile Development with Xamarin

DevX: Open Source Articles - Wed, 07/27/2016 - 21:33
Learn more about the cross-platform mechanisms and the support for per-platform code in Xamarin.
Categories: Open Source