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

Dart Designer

Dart Designer is a graphical tool for Dart Developers.

It allows you to specify your Dart application directly from Eclipse thanks to several kinds of diagrams (Class, Explorer, Library, Module, Route, Package). It also comes with support for AngularDart.

It can also be downloaded as a stand alone product from its official website.

Release notes

Categories: Open Source

Ben Evans: My Five Favorite NetBeans IDE Features

NetBeans Highlights - Wed, 08/06/2014 - 15:22
An article series about NetBeans users and their favorite features in the IDE. Ben Evans, Java Champion, JavaOne Rockstar, and organizer of London JUG.
Categories: Java, Open Source

Joachim Arrasz: My Five Favorite NetBeans IDE Features

NetBeans Highlights - Tue, 08/05/2014 - 14:58
An article series about NetBeans users and their favorite features in the IDE. Joachim Arrasz, a developer and one of the founders of Synyx, a software development company in Germany.
Categories: Java, Open Source

Projects of the Week, August 4, 2014 Front page news - Mon, 08/04/2014 - 23:16

Here are the projects that we’re featuring this week on the front page of


Bitcoin is a decentralized P2P electronic cash system without a central server or trusted parties. Users hold the crypto keys to their own money and transact directly with each other, with the help of the network to check for double-spending.

[ Download BitCoin ]


XOOPS is one of world’s leading open source CMS and portal systems, written in PHP for the MySQL database. Its object orientation makes it an ideal tool for developing small or large community websites, intra company and corporate portals, weblogs and much more.

[ Download XOOPS ]


CMDBuild is the most flexible software to configure a custom database of assets (CMDB stands for “Configuration and Data Base Management”) and design related workflow processes. The purpose is to let operators have full control of the assets, knowing their composition, location, functional relations and the changes over time. CMDBuild allows you to design ITIL compliant workflows.

[ Download CMDBuild ]

PortableApps is the world’s most popular portable software solution allowing you to take your favorite software with you. A fully open source and free platform, it works on any portable storage device (USB flash drive, iPod, memory card, portable hard drive, etc). With millions of users all over the world and a full collection of open source software (as well as freeware and commercial software), is the most complete solution for life on the go.

[ Download PortableApps ]

Octave Forge

GNU Octave is a programming language for numerical computations. Octave-Forge is a central location for the collaborative development of packages for GNU Octave. The Octave Forge packages contains the source for all the functions and are designed to work with the Octave package system. In general the packages are designed to work with the latest development version of Octave, but it should be possible to use most packages with earlier versions.

[ Download Octave Forge ]


FileZilla is a (GPL-GNU) cross-platform FTP, SFTP, and FTPS file management tool that supports Windows,  Mac OS X, and Linux. FileZilla’s dynamic tools help you move files between your local machine and your Web site’s server effortlessly. For example, Filezilla lets you compare your files with in-directory server files to manage file syncing. You can also tab browse between servers and transfer files to them simultaneously, as well as edit server files on the go. And Filezilla is available in 47 languages worldwide!

[ Download Filezilla ]

Clam AntiVirus

ClamAV is an open source (GPL) antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats. It is the de facto standard for mail gateway scanning. It provides a high performance mutli-threaded scanning daemon, command line utilities for on demand file scanning, and an intelligent tool for automatic signature updates. The core ClamAV library provides numerous file format detection mechanisms, file unpacking support, archive support, and multiple signature languages for detecting threats. The core ClamAV library is utilized in Immunet 3.0, powered by ClamAV, which is a fast, fully featured Desktop AV solution for Windows.

[ Download Clam AntiVirus ]

TurnKey Linux

Turnkey GNU/Linux is a free Debian based library of system images that pre-integrates and polishes the best free software components into secure, easy to use solutions. TurnKey was started in 2008 by Alon Swartz and Liraz Siri who were inspired by a belief in the democratizing power of free software, like science, to promote the progress of a free & humane society. Without the freedom to freely distribute, tinker and learn from free software the Internet as we know it would not exist. Free software is the silent, often invisible power behind the greatest technological marvel of our era.

[ TurnKey Linux ]


SMPlayer is a free media player for Windows and Linux with built-in codecs that can also play and download Youtube videos. One of the most interesting features of SMPlayer is that it remembers the settings of all files you play. SMPlayer is a graphical user interface (GUI) for the award-winning MPlayer, which is capable of playing almost all known video and audio formats. But apart from providing access for the most common and useful options of MPlayer, SMPlayer adds other interesting features like the possibility to play Youtube videos or download subtitles.

[ Download SMPlayer ]

Categories: Open Source

Apex Editor LS

An alternative editor for Salesforce's Apex language. For complete list of features, please visit the plugin's site

Categories: Open Source

August 2014, “Staff Pick” Project of the Month – CMDBuild Front page news - Sat, 08/02/2014 - 00:35

For our August “Staff Pick” Project of the Month, we selected CMDBuild, flexible software to configure a custom database of assets and design related workflow processes. One of the project’s managers, Fabio Bottega, who has been with CMDBuild since 2005, shared his thoughts about the project’s history, purpose, and direction.

SourceForge (SF): Tell me about the CMDBuild project.

Fabio Bottega (FB): CMDBuild is an open source, enterprise web application to model and manage your IT asset database. CMDB stands for configuration and management database but CMDBuild is more than an IT asset database. With CMDBuild you can configure and customize a complete IT governance environment, think of it as enterprise resource planning (ERP) for IT division management.

Every organization needs its own data model; it’s own information technology infrastructure library (ITIL) and/or non-ITIL workflows, reports and dashboards, connectors, etc. With CMDBuild you configure your data model using our web interface to create and connect a custom workflow. CMDBuild is like an “open source Microsoft access” except that it’s an enterprise web application, written in Java, with a modern SOA architecture and a powerful workflow management system. The CMDBuild philosophy is to create complete configurability.

SF: What made you start this?

FB: In 2005, the information systems division of the municipality of Udine (a town in the northeast of Italy where we are based) started a revision and optimization activity for some internal processes, according to ITIL “best practice” standards. The CIO searched for an open source tool but could not find any, so he approached Tecnoteca with the idea to start a new project to develop an open source CMDB tool. The initial financial impetus to grow came from the municipality but it was a long and difficult path to get here.

SF: Has the original vision been achieved?

FB: Compared to the initial CMDBuild objectives, we went much further faster than we hoped both in technical and in functional aspects, with one exception: the growth of a strong community. To begin with, contributions were very few because of the lack of English documentation. After we released manuals in English, contributors localized 13 languages ​​and some advanced users began helping users on the forum. Then code contributions began, with a new Web service CMDBuild and CMDBf compliance. But the project needs more help from the community for CMDBuild to continue to grow.

SF: Who can benefit the most from your project?

FB: CMDBuild target users are medium to large public and private organizations (from 200/300 to 20,000/30,000 or more employees) that want to manage their IT governance in a controlled way.

SF: What is the need for this particular asset management tool?

FB: The main use of CMDBuild is to manage the IT governance (assets and workflows) of an organization. However, thanks to its flexibility and architecture, CMDBuild is also a good solution for managing data and the workflows of non-IT environments. For example, we recently created and released the new openMAINT software, a complete solution for the property and facility management (CMMS), on SourgeForge that started from CMDBuild. And some organizations use CMDBuild to manage and maintain vehicles, to manage artwork in museums, to manage workflow-based office practices, etc.

SF: What’s the best way to get the most out of using CMDBuild?

FB: There are two things you can do: learn about the philosophy and the technical mechanisms of CMDBuild and have clear ideas about the best way to manage the IT division of your organization.

To learn CMDBuild, I suggest starting with the overview manual and then switch to the administrator and user manuals. If you then want to study the workflow system, the Web service, and the external connectors there are separate manuals for each. I suggest the ITIL approach to clarify the optimal way to manage the IT infrastructure of your organization. You must believe that a configured solution, which works exactly how your organization works, is better than a hardwired solution.

SF: What has your project team done to help build and nurture your community?

FB: We opened a forum where we provide updated documentation with each major CMDBuild release, we organize events and publish slides and videos, and of course we make the updated source code available in real time. Then we take care of the “socials” by issuing a bimonthly newsletter, a LinkedIn group with over 300 members, and a dedicated channel on Twitter, YouTube, and SlideShare.

SF: Have you all found that more frequent releases help build up your community of users?

FB: Yes, frequent releases enable users to obtain bug fixes, new features, and updates that keep users close to the project. CMDBuild has one or two major releases each year and a minor release about every two months.

SF: What was the first big thing that happened for your project?

FB: After two or three years of life CMDBuild was chosen for some high profile public administrations in Italy (since Tecnoteca, an Italian company, is the brain child of CMDBuild), such as the State Attorney, the City of Bologna, the Regional Council of Tuscany, the Italian Chamber of Deputies, etc. From then on, thanks to these testimonials that supported the project in public events, word of mouth, etc., the CMDBuild circulation increased.

SF: What helped make that happen?

FB: The open source license helped to achieve this result and the fact that the initial sponsor, the Municipality of Udine, is a public administration. Italian public administrations are required to always consider open source solutions in their software choices and when they find valid products they use them.

SF: What was the net result for that event?

FB: A lot of case studies, testimonials, events slides and videos.

A lot of case studies, testimonials, events slides and videos. -->

SF: What is the next big thing for CMDBuild?

FB:  We are working on a new “mobile interface”, an app that can be used with smartphones and tablets. Then we will work to develop a “relations graph viewer”, a web interface to analyze relationships and dependencies, impacts between assets, and infrastructures and services in a visual way.

SF: How long do you think that will take?

FB: We will release the “mobile interface” in about three months and the “relations graph viewer” in about nine months.

SF: Do you have the resources you need to make that happen?

FB: Availability of resources is a common problem in open source projects and we have this problem too. We need more economic resources to grow the project, increase its working group, and provide it with new features. We can achieve this result getting more subscription by the organizations we support or by obtaining funding from investors.

SF: If you had it to do over again, what would you do differently for CMDBuild?

FB: Every choice can be made in many ways but we are happy with the choices we made.

SF: Is there anything else we should know?

FB: Yes, for some time an important part of our job was dedicated to balance the results obtained in Italy with those obtained in the global market (from the beginning more than 90% of the downloads came from countries other than Italy). Tecnoteca is based in Italy so we required more effort to access the global market. Now we support a lot of organizations around the world. Our goal is to grow our market even more through the Internet, new partners, and through awards, such as this SourceForge “Editor’s Choice” Project of the Month!

Categories: Open Source

August 2014, “Community Choice” Project of the Month – VASSAL Engine Front page news - Fri, 08/01/2014 - 23:32

For our August Project of the Month, the community elected VASSAL Engine, a game engine for building and playing online adaptations of board and card games. One of the project’s managers, Joel Uckelman, who has been with VASSAL Engine since 2006, shared his thoughts about the project’s history, purpose, and direction.

SourceForge (SF): Tell me about the VASSAL Engine project.

Joel Uckelman (JU): VASSAL provides a virtual tabletop for playing board games live over the net and by email. It’s cross-platform and open source, and has a huge library of games of all types—traditional board games, Euro games, war games, and card games—over 1400 in our module library at present.

SF: What made you start this?

JU: Rodney Kinney created VASL (Virtual Advanced Squad Leader) in 1997 as a program for playing Advanced Squad Leader (a tactical WWII combat game). After a while it became clear that most of the code in VASL would be applicable to other board games as well; in 2001 Rodney split the project into the generic game engine VASSAL, while the ASL-specific parts kept the VASL name but became a VASSAL game module.

I joined the project in 2006. The draw for me was and is that VASSAL lets me play games with my old opponents who now live in far-flung places, lets me keep set up large games for which I lack the table space, and lets me keep logs of what happened in those games. VASSAL is a tool I want to use myself, as well as a way I can contribute to both the board gaming and open source communities.

SF: Has the original vision been achieved?

JU: Yes. We’re well beyond what anyone envisioned at the outset and have been for years now.

SF: Who can benefit the most from your project?

JU: People who want to play short board games in real time, people who want to play longer games in sessions or by email, people who lack the space for setting up large games, game designers building and testing prototypes, game publishers who want more visibility for their board games—all of these can benefit from VASSAL.

SF: What is the need for this particular game engine?

JU: There are custom programs for some board games. However, writing a custom program for each board game that someone might want to play is a huge duplication of effort, beyond the abilities of most people, and maybe not even feasible given the incredible number of games published.

Just within the war-gaming section of the hobby, there are more than 150 games published in a typical year; there must be hundreds of Euro games. Fortunately, even the most disparate board games have common elements: There are players, pieces, boards or maps, maybe cards, and dice. The code one needs for handing these things in one game is largely applicable to others as well. With VASSAL, there’s no need for anyone to recreate these things for each game. Using our module editor, anyone can build a game module—it’s not necessary to be a programmer to do so.

Without VASSAL or a program like it, there would be no way to play the vast majority of board games over a computer.

SF: What’s the best way to get the most out of using VASSAL Engine?

JU: Read the Users’ Guide. Read the instructions for the game module you want to use (if the module designer provided any). This is the best way to get started. It helps if you’re familiar with the game you want to play already, as then you’re not learning VASSAL, the module, and the game at the same time. If you have a problem, ask about it in our forum or in the #vassal IRC channel on freenode (but please wait for a reply if you drop in to #vassal—sometimes we’re a bit slow to answer).

SF: What has your project team done to help build and nurture your community?

JU: For some years now we’ve had a forum (bridged to a mailing list) for our user community. It’s quite active—there are more than 44000 posts there as I write this. Our development team also frequents the VASSAL topic on ConsimWorld.

SF: Have you all found that more frequent releases helps build up your community of users?

JU: We’re fairly aggressive about fixing the bugs users report, so one of our motivations for releases is to get those fixes out to users—it makes users happy to see bugs they reported fixed, it makes it easier for us to troubleshoot with fewer changes between releases, and killing bugs in the wild helps us spend less time on bug reports and more time on development.

SF: What was the first big thing that happened for your project?

JU: What happened was a collection of many small things rather than one big thing. Many war games have VASSAL modules before they’re even published in hard copy these days, which is something I never expected. It dawned on me that we were having an impact on the hobby when I started to see VASSAL module designers being thanked in the credits for printed games.

SF: What helped make that happen?

JU: Game designers deciding to use VASSAL for play testing.

SF: What was the net result for that event?

JU: It’s gotten VASSAL much more exposure in the board gaming community, but it’s also helped grow the hobby. We hear constantly from people who bought a game because they saw the VASSAL module or because they realized they could now play the monster game for which they lack table space. That’s good for us, good for game players, and good for game designers and publishers—good for everyone in the hobby.

SF: What is the next big thing for VASSAL Engine?

JU: The next major version is VASSAL 4.

SF: How long do you think that will take?

JU: I’m asked this often and I always try to dodge it. The most accurate thing I can say is that our current release, 3.2, is getting attention for bug fixes only now and I’m focusing the bulk of my own development efforts on VASSAL 4. In short, I don’t know when you’ll see V4 but I do know it will be next.

SF: Do you have the resources you need to make that happen?

JU: Partially. I’m aiming for us to have Android, iOS, and web clients for V4, in addition to Mac, Linux, and Windows clients that we have now. As a team, we don’t have all that much expertise with tablets or web apps right now. More developers, especially ones familiar with those areas, would expedite things a bit.

SF: If you had it to do over again, what would you do differently for VASSAL Engine?

JU: From 2009 to 2012—the period when 3.2 was in development—we were adding new features, but we were also getting a torrent of bug reports from the bug reporting tool we added to 3.1. Both experiences made us reflect on the overall design of VASSAL. It became clear that some design choices that were appropriate in 1997 weren’t in the 2010’s. But the main thing I learned was that we need a clearly defined specification (for the module designer API) so we can tell whether a behavior is actually a bug. VASSAL is in an odd position in that some of our users are game module designers and some are game players. It means that VASSAL is a client for some people and a library for others. Because VASSAL is extensible, module designers are constantly finding creative ways to do things, and we’ve increasingly found ambiguous situations where fixing an apparent bug for one module designer breaks another designer’s module. Providing a proper spec should help with that.

SF: Any reason you can’t do that now?

JU: We’re planning to do all of that in VASSAL 4.

Categories: Open Source

Google Summer of Code new organizations - Part Five

Google Open Source Blog - Fri, 08/01/2014 - 20:00
We have two additional Google Summer of Code organizations to spotlight this week, LabLua and Code Combat.  Both are new to the program in 2014. Read below for more information about the exciting projects their students have taken on this summer.
lablua.pngLabLua is a lab at PUC-Rio dedicated to research on programming languages with an emphasis on the Lua language. Lua is a powerful, fast, lightweight, embeddable scripting language that has been used in many industrial applications, and on many embedded systems and games.

It is our first year in Google Summer of Code (GSoC). We had eight mentors create a pool of 15 projects to help students to submit proposals. We received a total of 20 proposals, from which four have been accepted. We are quite an international group — two of the accepted students are from Brazil, one is from Romania and one is from India.

The projects our students are currently working on include:
  • Adding flow typing and evolution of table types to typed Lua
  • Adding multi-CPU support to VLC
  • Creating a library to help 'memory leak' detection in Lua
  • Porting Gameduino demos to the programming language CĂ©u (another language currently under development at our lab)
By Ana LĂşcia de Moura and Francisco Sant'Anna, Researchers at LabLua

coco_logo.pngCodeCombat is a game that teaches people to code. It runs completely in HTML5 and supports playing in JavaScript, Coffeescript, Python, Lua, Clojure, Io, and more to come. Since open sourcing the site in January, we've been very happy with the huge response from people who provide code improvements, experimental game levels and extensive translations to the site. Almost every aspect of the game is available for contributors to work on, and GSoC has been terrific in bringing not only attention to our project but also many dedicated volunteers as well.

Alexandru Caciulescu is building new game levels throughout the summer. His campaign focuses on teaching intermediate-to-advanced concepts and algorithms, such as sorting, recursion and data structures. He has already built the Gold Rush level which requires efficient pathfinding, and which we based our own Greed Tournament level on.

Jayant Jain is working on improving our level editor. Building new levels is currently quite hard, arguably the most difficult thing for any contributor to do. Jayant is running UX tests and working with Alexandru and other level builders to remove pain points, fix bugs, add key features and create helpful documentation.

Dominik Kundel is doing a series of projects on the game interface which will improve gameplay in general and mobile gameplay in particular. Projects include auto-complete, separation of coding and game views and interfaces for manipulating code easily on mobile.

Ruben Vereecken is building the site's achievement system from top to bottom. It uses an experimental, highly decoupled and flexible foundation that is largely independent from the client logic. He's also digging into several other parts of the site, such as the testing systems and making server-side improvements.

By Scott Erikson, Organization Administrator for Code Combat

Categories: Open Source

Community Choice Project of the Month Vote for September 2014 Front page news - Fri, 08/01/2014 - 08:00

The vote for September 2014 Community Choice SourceForge Project of the Month is now available, and will run until Aug 24, 2014 12:00 UTC:

Vote here for the Community Choice SourceForge Project of the Month for September 2014


PyQt is the Python bindings for Digia’s Qt cross-platform application development framework. It supports Python v2 and v3 and Qt v4 and Qt v5. PyQt is available under the GPL and commercial licenses. The Sourceforge project is the repository for the GPL source and binary packages.

[ Download PyQt ]


Media Player Classic – BE is a free and open source audio and video player for Windows. Media Player Classic – BE is based on the original “Media Player Classic” project (Gabest) and “Media Player Classic Home Cinema” project (Casimir666), contains additional features and bug fixes.

[ Download MPC-BE ]

Octave Forge

GNU Octave is a programming language for numerical computations. Octave Forge is a place for development of its packages; from bioinformatics and fuzzy logic to mechanics and instrument control.

[ Download Octave Forge ]


OpenMediaVault is the next generation network attached storage (NAS) solution based on Debian Linux. It contains services like SSH, (S)FTP, SMB/CIFS, DAAP media server, RSync, BitTorrent client and many more. Thanks to the modular design of the framework it can be enhanced via plugins. OpenMediaVault is primarily designed to be used in home environments or small home offices, but is not limited to those scenarios. It is a simple and easy to use out-of-the-box solution that will allow everyone to install and administrate a Network Attached Storage without deeper knowledge.

[ Download OpenMediaVault ]

OWASP Zed Attack Proxy

The Zed Attack Proxy (ZAP) is an easy to use integrated penetration testing tool for finding vulnerabilities in web applications. Note that this project is just used for hosting the ZAP downloads. Please see the homepage for more information about OWASP ZAP

[ Download OWASP Zed Attack Proxy ]

SQLite Database Browser

*** PROJECT MOVING TO GITHUB *** *** PROJECT MOVING TO GITHUB *** SQLite Database browser is a light GUI editor for SQLite databases, built on top of Qt. The main goal of the project is to allow non-technical users to create, modify and edit SQLite databases using a set of wizards and a spreadsheet-like interface.

[ Download SQLite Database Browser ]


wkhtmltopdf and wkhtmltoimage are command line tools to render HTML into PDF and various image formats using the QT Webkit rendering engine. These run entirely “headless” and do not require a display or display service.

[ Download wkhtmltopdf ]

GNU ARM Eclipse Plug-ins

These plug-ins provide build and debug extensions for Eclipse CDT (C/C++ Development Tools) for 32/64-bit GNU ARM toolchains like GNU Tools for Embedded, Linaro, etc, ready to run STM32Fx project templates and full integration for advanced J-Link JTAG/SWD probes, including SWO tracing console.

[ Download GNU ARM Eclipse Plug-ins ]


SystemRescueCd is a Linux system rescue disk available as a bootable CD-ROM or USB stick for administrating or repairing your system and data after a crash. It aims to provide an easy way to carry out admin tasks on your computer, such as creating and editing the hard disk partitions. It comes with a lot of software such as disk management tools (parted, partimage, fsarchiver, filesystem tools, …), network administration programs and simple text editors . It can be used for both Linux and windows computers, and on desktops as well as servers. This rescue system requires no installation as it can be booted from a CD/DVD drive, and USB stick, or from the network using PXE. But it can be installed on the hard disk if you wish. It comes with up to date kernels to provide support for recent hardware and also for all important file systems (ext2/ext3/ext4, xfs, btrfs, ntfs, reiserfs, vfat), as well as network filesystems (samba and nfs).

[ Download SystemRescueCd ]

Categories: Open Source

Color IDE Pack

Quickly install 4 plugins to colorize Eclipse: ECT, Moonrise, Jeeeyuls, EditBox

- Eclipse Color Theme released by Nodeclipse - Eclipse 3.x [mainly] Editors color themes, original author Felix H. Dahlke
- Eclipse Moonrise UI Theme - the best black color theme by Andrea Guarinoni
- Jeeeyul's Eclipse Themes, former Eclipse Chrome Theme - many more Eclipse 4.x color themes and color customization tools by Jeeeyul Lee
- Nodeclipse EditBox code blocks color themes, original author Piotr Metel.

Listed in Nodeclipse Plugins List.

with-Eclipse logo

Categories: Open Source

NetBeans Dream Team: Our Favorite NetBeans IDE Features

NetBeans Highlights - Thu, 07/31/2014 - 19:14
An article series about NetBeans users and their favorite features in the IDE. Zoran Sevarac, Kirk Pepperdine, and other NetBeans Dream Team members share their favorite NetBeans features.
Categories: Java, Open Source

Eclipse Newsletter - Inside the Eclipse Foundation

Eclipse News - Thu, 07/31/2014 - 16:11
This month, Eclipse Foundation staff members wrote about common questions they receive from the Eclipse community.
Categories: Open Source

Case study: HPCC Systems

The Dojo Toolkit - Announcements - Thu, 07/31/2014 - 08:01

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Gordon Smith from HPCC Systems, a subsidiary of LexisNexis RISK Solutions.

Q: How did you first learn about Dojo?

A: Through Google / Stack Overflow. I suspect my “discovery” of Dojo was a bit different to the norm, as prior to 2013 I had never really done any Web Development. Up until then I was predominantly a C++ Developer, some Java and a smattering of C#. Initially I wanted to knock together a single page proof of concept, consisting of a code editor (CodeMirror), a result view (HTML Table) and an “activity graph” (ActiveX Control) and wanted something that would handle the layout, resizing and ideally something with splitters – after a few searches online I found the Border Container Docs and away I went! Shortly after, I added a Tab Container and switched to using the basic Grid.

ECL Playground

ECL Playground – How the original POC Looks today

Q: Why did you choose Dojo?

A: After the initial success of the proof of concept, we took stock of our existing web application and decided that a rewrite would be in order, at this stage I did stop and take a longer look at what was available and quickly came to the conclusion that it would be jQuery or Dojo. Dojo won out for a number of reasons, chief of which was how the core libraries had been architected, as well as their attention to “core” details, like AMD, OOP, localization and accessibility. I was also satisfied that we could use Dijit for the App layout and common widgets, while being able to drop in any other “best of breed” page elements as needed.

Q: Were you previously using another toolkit?

A: We had been using XSLT to generate our pages and a small amount of YUI for some of the newer work.

EPC Before


EPC After


Q: What does your application or service do?

A: The HPCC Platform (High Performance Computing Cluster) is a massive parallel-processing computing platform that solves Big Data problems. It has been in development for more than thirteen years and was open sourced just over three years ago now. We call the web application “ECL Watch” (ECL is our declarative data processing language), and it allows the user to:

  • Submit, Monitor and Manage ECL jobs.
  • Load, unload and manage raw and processed data (files).
  • General configuration and operational management.
ECL Workunit

A single ECL “Workunit” making heavy use of the TabContainer

Q: How does your application use Dojo?
  • A: It uses AMD and Declare to enforce well organized and encapsulated coding.
  • Our platform primarily uses SOAP/JSON/REST style messaging, so we make heavy use of Request, Deferred and Stores.
  • Dijit Layouts – The Border Container and Tab Container are always at the foundation of any new Widget/Page we write.
  • Dijit Widgets – Both the usage of the built in widgets as well as the framework for extending and writing out own widgets – every visual page we design is done as a “plugable” widget, and as such can be opened in different parts of the Web Application as well as in a separate browser window (very useful for emailing links to colleagues).
  • The rest – it’s hard to list specific items here as we pretty much use it all… dojo/topic and /dojo/aspect would get honourable mentions as they have allowed some elegant solutions to some tricky design challenges we faced. dojo/aspect helped workaround some ActiveX/NPAPI browser specific inconsistencies, by intercepting and altering specific DOM Class changes to widgets (all within a single function). While dojo/topic (along with dojo/Stateful / dojo/store.notify) helped ensure there was no assumption about what sets of widgets were loaded at any given time and keeping all related widgets in sync.
Q: Overall what is your user experience with Dojo?

A: On the whole it has been a very positive experience, it does have a moderate to steep learning curve, but no harder than any other “significant” framework. As I switch to/from my C++/Java work, it is interesting that I seem to miss more of the patterns I have learnt while using Dojo than the other way around. I suspect I will be implementing a variant of the Deferred/promise pattern in the near future!

Q: What’s your favorite thing about Dojo?

A: The AMD loader and OOP support – Personally I find it all too easy to write hard to maintain code in JavaScript (especially as a novice), but with the AMD/OOP support I was able to continue to “think”, organise and encapsulate in a similar fashion to my C++/Java work.

Q: What are your future plans with Dojo?

A: We still have a small amount of work todo in converting our existing Web App, but once that is done the plan is start optimising the users workflow, this will mean developing new and better interfaces, so lots of Widget work. We have already started to integrate visualisations using d3.js (as widgets) and I hope that Dojo 2.0 (and the new related SitePen work) gets released at a convenient time in our release cycle so we can be early adopters.

ECL Treemap


ECL Landing Zones

Landing zones

ECL Graphs


ECL Visualizations


ECL User Permissions

User permissions

ECL i18n



Thanks Gordon for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.

Categories: Open Source, RIA

Google Code-in: sixteen and counting

Google Open Source Blog - Wed, 07/30/2014 - 20:00
Today we have a guest post from Chirayu Desai, one of the twenty amazing teenagers from around the globe who took top honors in Google Code-in 2013. Read more about Chirayu and his introduction into the world of open source software below.

If I told you a 16 year-old kid could work on software which runs on millions of devices, contribute to an operating system which is present on more than a billion devices, and work on code that goes into spacecraft, would you believe it?

Believe it! I am that very 16 year-old writing this blog post three months after visiting the Googleplex in California (a long-time dream) as one of the 20 grand prize winners of Google Code-in 2013 (GCI). Check me out on a Segway! I’m the one on the right.
I first read about GCI online, and I immediately decided to participate. I felt that it was the perfect opportunity for me to not only get involved in an open source project but also get to know new people. I chose RTEMS because I liked their hello world task — it involved setting up a development environment for RTEMS, compiling a test program, and running it in a simulator.

So what is involved when completing tasks for GCI? It isn’t just about writing code, but also really understanding the code and contributing back to it. While working with an open source organization, you have to ensure that the code quality meets the project’s guidelines.  The code must be as accurate and efficient as possible — no quick hacks here.

As an open source contributor, I worked with version control systems (they’re awesome, really), mailing lists (old school, but still effective) and code review systems. I then got feedback from my mentors, applied it, rinsed and repeated. The exciting part wasn’t just the coding process, but everything associated with working on such a project. I wrote the code, wrote tests for the code, read and closed bug reports, collaborated with other people, etc. It’s much more in depth than what I would experience with a personal project and I learned a ton!

As a high school student you may have worked on a personal project in your spare time, or maybe you even know a few coding languages. But I believe working with open source projects and participating in GCI gives you much more. I now know that when I get a job one day, I won’t just have to write code, I’ll also have to get it reviewed, and review other people’s code. This is not something you learn by working on personal projects, but by working collaboratively — something I practiced and refined by participating in GCI. In addition, the mentors assigned to help students were very supportive would help us students with everything that we needed which was really encouraging.
I really enjoyed participating in the contest. Even though I had worked on open source software before, my Google Code-in experience was completely different from anything I’d ever done. Flying halfway across the world and getting to meet the people with whom I had worked was something I didn’t imagine would ever happen. Every 13-17 year old pre-university student has the opportunity to participate in GCI, you just need to take that first step. Then you too can be a part of something that could change your life — I know it changed mine.

By Chirayu Desai, Google Code-in Grand Prize Winner, 2013

Are you interested in participating in Google Code-in this year? Keep an eye on the program website for important dates and information.

Categories: Open Source

Leading Automotive Companies to Collaborate at Eclipse: Introducing openMDM

Eclipse News - Tue, 07/29/2014 - 21:26
Last week, AUDI, BMW and Daimler announced they are joining forces to form the Eclipse openMDM Working Group to create a new open source community to develop and distribute tools for managing automotive test data.
Categories: Open Source

Maciej Puchalski: My Five Favorite NetBeans IDE Features!

NetBeans Highlights - Tue, 07/29/2014 - 18:28
An article series about NetBeans users and their favorite features in the IDE. Maciej Puchalski, a student at the Polish University of Białystok.
Categories: Java, Open Source

Thomas Kruse: My Five Favorite NetBeans IDE Features

NetBeans Highlights - Tue, 07/29/2014 - 18:28
An article series about NetBeans users and their favorite features in the IDE. Thomas Kruse, co-leader of the Munster JUG.
Categories: Java, Open Source

How is 8.0 Working for You? Take the NetBeans Satisfaction Survey!

NetBeans Highlights - Tue, 07/29/2014 - 18:28
The NetBeans team wants your feedback about your experience using NetBeans IDE 8.0. Are you getting the best coding experience with 8.0? Are there features or enhancements the NetBeans team should consider in future releases? Give your feedback in this short survey. It should only take about 3-5 minutes to complete.
Categories: Java, Open Source

NetBeans IDE 8.0 Patch 1 Now Available

NetBeans Highlights - Tue, 07/29/2014 - 18:28
The NetBeans Team has released a patch for NetBeans IDE 8.0 with fixes that enhance stability and performance. Learn more about the fixes in NetBeans IDE 8.0 Patch 1 To obtain the fixes, NetBeans IDE 8.0 must be installed and running. An update notification will appear in the IDE. Click the notification to install the updates. (You can also download the fixes through the NetBeans IDE Plugin Manager.)
Categories: Java, Open Source

Using Oracle Java SE Embedded Support in NetBeans IDE

NetBeans Highlights - Tue, 07/29/2014 - 18:28
Get started with Java SE Embedded in NetBeans IDE and learn to use the IDE's support for Java SE Embedded.
Categories: Java, Open Source