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

PostgreSQL 9.6.2, 9.5.6, 9.4.11, 9.3.16 and 9.2.20 released!

PostgreSQL News - Thu, 02/09/2017 - 01:00

The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 9.6.2, 9.5.6, 9.4.11, 9.3.16, and 9.2.20. This release includes fixes that prevent data corruption issues in index builds and in certain write-ahead-log replay situations, which are detailed below. It also patches over 75 other bugs reported over the last three months.

Users should plan to apply this update at the next scheduled downtime.

Build corruption with CREATE INDEX CONCURRENTLY

There existed a race condition if CREATE INDEX CONCURRENTLY was called on a column that had not been indexed before, then rows that were updated by transactions running at the same time as the CREATE INDEX CONCURRENTLY command could have been indexed incorrectly.

If you suspect this may have happened, the most reliable solution is to rebuild affected indexes after installing this update.

This issue is present in the 9.2, 9.3, 9.4, 9.5, and 9.6 series of PostgreSQL.

Fixes for visibility and write-ahead-log stability

These release contains several fixes to improve the stability of visible data and WAL logging that we wish to highlight here.

Prior to this release, data could be prematurely pruned by a vacuum operation when a special snapshot used for catalog scans was presently available. Specifically, the vacuum operation would not be aware of the oldest xmin for this special snapshot. The error would surface with a message such as:

"cache lookup failed for relation 1255"

This release ensures that vacuum operations will account for the catalog scan snapshots.

Additionally, there are several fixes to improved the stability of write-ahead-logging, including:

* A fix for BRIN index WAL logging where a replay could make a portion of the BRIN index useless and require recomputing
* A fix for an unlogged table where a WAL-log would be created under the "wal_level = minimal" setting, and upon replay after crash, the table would not appear to be properly reset
* A fix in the WAL page header validation when re-reading segments that fixes the error of  "out-of-sequence TLI" that could be reported during recovery

Theses issues are present in the 9.6 series of PostgreSQL releases and may also be present in the 9.2, 9.3, 9.4, and 9.5 series.

Bug Fixes and Improvements

This update also fixes a number of bugs reported in the last few months. Some of these issues affect only the 9.6 series, but many affect all supported versions. There are more than 75 fixes provided in this release, including:

  • Several fixes for operating in hot standby mode
  • Disallow setting the num_sync field to zero in synchronous_standby_names
  • Don't count background worker processes against a user's connection limit
  • Fix check for when an extension member object can be dropped
  • Fix tracking of initial privileges for extension member objects so that it works correctly with ALTER EXTENSION ... ADD/DROP
  • Several vacuum and autovacuum fixes
  • Fix CREATE OR REPLACE VIEW to update the view query before attempting to apply the new view options
  • Make sure ALTER TABLE preserves index tablespace assignments when rebuilding indexes
  • Several fixes to the query planner, including fixes for foreign tables and CTEs
  • Several fixes around the full-text search feature to improve accuracy and performance of the search
  • Several fixes and performance improvements in several array functions
  • Several fixes around the interaction of foreign-key constraints with trigger functions around specific ALTER TABLE operations
  • Remove optimizations for date/time data types that returned incorrect data
  • Fix incorrect use of view reloptions as regular table reloptions
  • Fix incorrect "target lists can have at most N entries" complaint when using ON CONFLICT with wide tables
  • Fix spurious "query provides a value for a dropped column" errors during INSERT or UPDATE on a table with a dropped column
  • Prevent multicolumn expansion of foo.* in an UPDATE source expression
  • Ensure that column typmods are determined accurately for multi-row VALUES constructs
  • Several fixes for the psql command-line tool
  • Prevent multiple calls of pg_start_backup() and pg_stop_backup() from running concurrently
  • Several fixes for pg_dump, pg_restore, and pg_basebackup, including a possible pg_basebackup failure on standby server when including WAL files
  • Several fixes for parallel workers and plans for parallel queries including fixing a crash if the number of workers available to a parallel query decreases during a rescan
  • Several fixes to PL/pgSQL, PL/Python, and PL/Tcl
  • Several fixes for contrib modules
  • Allow DOS-style line endings in ~/.pgpass files, even on Unix

Update time zone data files to tzdata release 2016j for DST law changes in northern Cyprus (adding a new zone Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga, and Antarctica/Casey. Historical corrections for Italy, Kazakhstan, Malta, and Palestine. Switch to preferring numeric zone abbreviations for Tonga.

Updating

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.

If you believe you have been affected by the aforementioned CREATE INDEX CONCURRENTLY bug, you will have to rebuild the index. Here is an example of how to rebuild an index in a production system without losing the ability to utilize the index:

CREATE INDEX CONCURRENTLY new_index_name ON table_name (column_name);
DROP INDEX CONCURRENTLY old_index_name;
ALTER INDEX new_index_name RENAME TO old_index_name;

Note that using this method means you will briefly have two copies of the same index, so if disk space is an issue you may need to take other approaches.

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:

Categories: Database, Open Source

Google Summer of Code 2016 wrap-up: LabLua

Google Open Source Blog - Wed, 02/08/2017 - 18:00
This is the final guest post from the students, mentors and organization administrators that participated in Google Summer of Code (GSoC) 2016. We’ve seen recaps of student work and lessons learned, which you can check out the rest of the series as we gear up for this year’s program.


LabLua is a lab at PUC-Rio dedicated to research on programming languages, with emphasis on the Lua language. Lua is a powerful, fast, lightweight, embeddable scripting language that is used in many industrial applications, and on many embedded systems and games.
We were very happy to participate in Google Summer of Code (GSoC) for the third time, and to mentor eight fine students that all completed their projects successfully. We thank them, and Google, for this extraordinary contribution to our research and development work.
Here is a brief summary of this year's projects:
Next Generation of the LuaRocks test suite - Robert KarasekLuaRocks is the package manager for Lua modules. Its test suite was implemented as a big shell script that performed only black-box testing and ran only on Linux. The goal for this project was to port the test suite to Lua, improving its portability and allowing more types of tests so we could improve test coverage.
Robert ported the test suite to Lua using Busted. His new test suite, now merged into LuaRocks, runs on Linux and Mac OS X, accessible via Travis CI, as well as Windows, accessible via AppVeyor. 
This was a welcome addition, bringing greater confidence to developers. Robert improved the checks in existing tests and wrote many new ones, including a new mock-server for testing a client API for uploading packages to the repository.
Typed Lua Typechecker - Tomasz Dyczek 
Typed Lua provides static type checking for the Lua language. Typed Lua extends the syntax of Lua 5.3 to introduce type annotations, and performs local type inference for more precise detection of unannotated expressions.
Tomasz implemented the core of Typed Lua in Haskell. Tomasz's implementation parses code written in a syntax close to the abstract syntax of Typed Lua, then type checks the generated AST. Besides providing a support for testing and reasoning about new features, Tomasz's typechecker can be also used to validate tests to be included in Typed Lua's test suite.
Classes and Generics for Typed Lua - Kevin Clancy
Kevin worked on the implementation of a class system for Typed Lua. He also added parametric polymorphism (generics) for classes and existing Typed Lua types, such as functions and tables.
Kevin's work currently lives in its own branch, but will be merged into the main branch soon. Meanwhile, Kevin has written a detailed post explaining all the features he implemented
Improving Error Reporting in PEG Parsers - Matthew Allen Go 
LPegLabel is an extension of LPeg, a pattern matching tool for Lua, based on Parsing Expression Grammars (PEGs). LPegLabel supports labeled failures, a facility that improves error reporting and recovery for PEG-based parsers.
The goal of this project was to use LPegLabel to write parsers with good error reporting. These parsers could then be used by the Lua community and also serve as a guide for LPegLabel users. Because LPegLabel is a young tool, another important contribution was to improve the tool's usability.
Matthew achieved both goals. He developed a parser for Lua 5.3, which has been incorporated into the new release of lua-parser (1.0.0), and improved LPegLabel’s usability with work on its API and documentation.
Improving elasticsearch-lua tests and build - Dhaval Kapil
Elasticsearch is a distributed and scalable search engine written in Java that offers a REST API accessed through JSON. During GSoC 2015, Dhaval implemented elasticsearch-lua, a client for the Lua language following a model similar to clients written in Python and PHP.
During GSoC 2016, Dhaval worked on improving elasticsearch-lua. He added a test suite, documented the entire codebase, and updated the current client to work with the newest version of Elasticsearch.
Dhaval went above and beyond, creating a new library called luaver. This work was motivated by having to frequently switch between different versions of Lua while developing the test suite. A full blog post about his project can be found here.
Admin Center and Elasticsearch integration for Sailor - Nikhil Ramesh 
Sailor is a web framework with a model-view-controller (MVC) architecture. Like other web frameworks, such as Ruby on Rails and Django, it is designed to make development faster by making some assumptions and conventions and encouraging principles like Don’t Repeat Yourself (DRY).
Nikhil focused on extending Sailor. The first feature he worked on was an Admin Center, which is a web interface for configuring an application. He also integrated Sailor and elasticsearch-lua, allowing Elasticsearch indexes to be stored as Sailor Models. His work is currently pending as a pull request and will soon be merged.
Extending the online tutorial of Céu with Emscripten and SDL - Margarit Vicentiu
Céu is a language for developing reactive applications such as video games and embedded systems. Its compiler generates output in plain C to integrate easily with the underlying platform (e.g. Arduino, SDL). For this project, we wanted to integrate Céu with Emscripten in order to run applications in a web browser.
Vicentiu started with Céu’s online tutorial, which is a server-side application: the user types code in a text area and hits the send button; the server receives the code, executes it, and sends the output back to the user. During the summer, Vicentiu made most of the examples compile with Emscripten and run in real-time on the user’s screen.
Our next goal is to make the graphical examples with user interactions also work in the browser, and Vicentiu plans to continue contributing to the project to achieve this goal.
An automatic generator of WSDL documents for LuaSOAP - Victor Dias
LuaSOAP is a library for working with the Simple Object Access Protocol (SOAP). WSDL is an XML format for describing network services; it is used to describe operations, messages and types offered by Web Services.
This summer Victor extended LuaSOAP's WSDL support by building a software layer for the automatic generation of WSDL documents. This new layer eases the description of most WSDL "bureaucracy" -- types, operations, ports, messages -- which have no counterparts in Lua. He also improved the test suite and the documentation. Victor's work will be integrated into the next version of LuaSOAP.
By Ana Lúcia de Moura, Organization Administrator for LabLua
Categories: Open Source

Participate in the IoT Developer Survey 2017

Eclipse News - Tue, 02/07/2017 - 11:45
We are pleased to launch the third annual IoT Developer Survey. Complete the survey now.
Categories: Open Source

SAP Hybris - Developer Toolset

Date Created: Mon, 2017-02-06 12:53Date Updated: Thu, 2017-02-09 10:08EPAM SystemsSubmitted by: EPAM Systems

SAP Hybris - Developer Toolset

Plugin for hybris developers, that allows you to reduce waste during your day to day hybris work and increase your working productivity.
Built by EPAM Hybris developers for Hybris developers. Results. Relentlessly.

More details : https://www.epam.com/ideas/brochures/hybris-eclipse-plugin

Features set:
Impex Editor
- Suggestions/auto-completions of commands, types, attributes, modifiers and macroses.
- Configurable highlighting
- Formatting
- Outline view integration
- Datalines folding
- Hyperlinks to item types and attributes declaration
Impex Run, validation on remote hybris instance
Projects import
- Importing based on build analyze
- Workspace sync
- Classpaths with required extensions sync
Flexible Search Editor View
- Suggestion of commands, types, attributes.
- Highlighting
- Executing on remote instance
- Flexible Search Result View
Flexible Search Builder
Hybris class creation wizard
- Interceptor creation
- Populator creation
- Spring beans suggestion and injection during class creation
Hybris extension generation wizard
Hybris module generation wizard

EPAM has a long history of Hybris development expertise and is a longstanding partner of SAP Hybris. Find out more about EPAM’s Hybris capabilities at https://www.epam.com/hybris.

Want to spend time with Hybris Experts - go https://www.epam.com/careers/hybris-talent to get involved.

Send your feedback and requests to hybriseclipseplugin@epam.com

Categories: Open Source

Cloud Platform Overview

DevX: Open Source Articles - Mon, 02/06/2017 - 18:41
Gain a solid understanding of the current state of Cloud platforms, how to integrate the Cloud into your systems and how to manage the risks.
Categories: Open Source

Google Summer of Code 2016 wrap-up: CloudCV

Google Open Source Blog - Mon, 02/06/2017 - 18:00
This guest post is part of our ongoing series of posts from the students, mentors and organization administrators who participated in Google Summer of Code (GSoC), a program which gets university students contributing to open source software.

Google Summer of Code 2016 was a memorable one for CloudCV. Despite being a relatively “young” organization (this is just our second year as a mentor organization), there were many excellent applicants who put a tremendous amount of effort into their proposals and ramp-up tasks. It was difficult to choose!

CloudCV began in the summer of 2014 as a research project within the Machine Learning and Perception Lab at Virginia Tech, with the ambitious goal of democratizing computer vision and machine learning. We’re run exclusively by students and are working to enable developers, researchers, and fellow students to leverage artificial intelligence technology as a service and to share state of the art algorithms with the research community.

In line with this goal, we decided to build two tools that cater to computer vision researchers and hobbyists alike: CloudCV-fy your code and CloudCV-IDE. Though building two new platforms from the ground up was going to be challenging, our students’ motivation was overwhelming and their performance surpassed all expectations. We even demonstrated their work at CVPR 2016, a top-tier computer vision conference!

CloudCV-fy

A recurring use case for computer vision researchers, and many others, is to build a web-based demo and REST API to demonstrate the capabilities of their creations to the world. But web development involves writing hundred of lines of additional code across multiple languages (HTML, CSS, JavaScript, etc), which takes time away from research.


Our first student, Ashish Chaudhary, took on this problem by building CloudCV-fy. Over many iterations of design and development, Ashish delivered a tool that allows a user to simply write lightweight wrappers around their machine learning model/library and be done. CloudCV-fy automatically builds web-based interactive demos for them -- no need to tinker with HTML, CSS or JavaScript. Code to demo. Done.

The demo can be hosted on our servers, the user’s own server or any third party cloud service. As a result of this, researchers can focus on what they do best: designing and training models. CloudCV handles the rest. You can learn more in the write-up Ashish did on his blog.

CloudCV-IDE

There has been an explosion in the number of deep learning frameworks and it is difficult for researchers to keep up with all the latest tools. CloudCV-IDE, built by student Gaurav Gupta, addresses this by allowing a user to build a deep learning network with a drag-and-drop interface, then export to the deep learning framework of their choice (Caffe, TensorFlow, etc).

Gaurav also added support to import model configuration files in order to visualize any architecture. This is one of the first attempts to do this.



By the end of the summer, Gaurav delivered a great UI to visualize models with robust support for Caffe and TensorFlow back-ends. This was a successful start that we plan to build on by supporting more frameworks and facilitating collaborative building of deep learning models.

Overall, this was a highly productive GSoC for CloudCV. Our tools are under active development and we welcome contributions and ideas for new features.

We will definitely apply for GSoC 2017. If you are a student interested in participating we encourage you to get involved early! Feel free to reach out to us on our Gitter channel or on our mailing list.

By Viraj Prabhu, Organization Administrator for CloudCV
Categories: Open Source

Projects of the Week, February 6, 2017

SourceForge.net: Front page news - Mon, 02/06/2017 - 06:19

Here are the featured projects for the week, which appear on the front page of SourceForge.net:

Liferay Portal

Liferay Portal is the world’s leading enterprise open source portal framework, offering integrated Web publishing and content management, an enterprise service bus and service-oriented architecture, and compatibility with all major IT infrastructure.
[ Download Liferay Portal ]


ReactOS

ReactOS is an open source effort to develop a quality operating system that is compatible with applications and drivers written for the Microsoft Windows NT family of operating systems (NT4, 2000, XP, 2003).
[ Download ReactOS ]


Hibernate

Hibernate is an Object/Relational Mapper tool. It’s very popular among Java applications and implements the Java Persistence API. Hibernate ORM enables developers to more easily write applications whose data outlives the application process. As an Object/Relational Mapping (ORM) framework, Hibernate is concerned with data persistence as it applies to relational databases (via JDBC).
[ Download Hibernate ]


tor-logoTor Browser

Tor Browser enables you to use Tor on Windows, Mac OS X, or Linux without needing to install any software. Tor is a software that bounces your communications around a distributed network of relays run by volunteers. This effectively prevents anyone watching your Internet connection from learning what sites you visit; it prevents the sites you visit from learning your physical location; and allows you access to sites which are blocked.

Tor Browser can run off a USB flash drive, comes with a pre-configured web browser to protect your anonymity, and is self-contained (portable).
[ Download Tor Browser ]


Hydrogen

Hydrogen is an advanced drum machine for GNU/Linux, Windows and Mac OS X. It’s main goal is to bring professional yet simple and intuitive pattern-based drum programming.
[ Download Hydrogen ]


TYPO3

TYPO3 is an enterprise class Web CMS written in PHP/MySQL. It’s designed to be extended with custom written backend modules and frontend libraries for special functionality. It has very powerful integration of image manipulation.
[ Download TYPO3 ]


bwapi-logoBWAPI

Brood War Application Programming Interface or BWAPI is a free and open source C++ framework that is used to create Artificial Intelligence (AI) agents that play the popular Real Time Strategy (RTS) game Starcraft: Brood War.

With BWAPI, players of varying levels can create AI agents to play Brood War, but with certain limits. BWAPI will only reveal visible parts of the game state to AI modules to enable programmers to write competitive non-cheating AIs. BWAPI also denies user input so users cannot take control of game units while the AI is in play. These default settings can be changed for flexibility however, unless enforced by a Tournament Module (game referee for AI tournaments).
[ Download BWAPI ]


PlatformIO Storage

Cross-platform code builder and library manager. Continuous and IDE integration. Arduino and MBED compatible. Ready for Cloud compiling. Development Platforms – Embedded and Desktop development platforms with pre-built toolchains, debuggers, uploaders and frameworks which work under popular host OS: Mac, Windows, Linux (+ARM) Embedded Boards – Rapid Embedded Programming, IDE and Continuous Integration in a few steps with PlatformIO thanks to built-in project generator for the most popular embedded boards and IDE Library Manager – Hundreds Popular Libraries are organized into single Web 2.0 platform: list by categories, keywords, authors, compatible platforms and frameworks; learn via examples; be up-to-date with the latest version Atmel AVR & SAM, Espressif, Freescale Kinetis, Nordic nRF51, NXP LPC, Silicon Labs EFM32, ST STM32, TI MSP430 & Tiva, Teensy, Arduino, mbed, libOpenCM3, etc.
[ Download PlatformIO Storage ]


TuxGuitar

TuxGuitar is a multitrack guitar tablature editor and player written in Java-SWT, It can open GuitarPro, PowerTab and TablEdit files.
[ Download TuxGuitar ]

Categories: Open Source

SQL Multi Select for PostgreSQL released

PostgreSQL News - Mon, 02/06/2017 - 01:00

Yohz Software has released SQL Multi Select for PostgreSQL, an invaluable too to add to your toolkit if you manage multiple PostgreSQL servers.

SQL Multi Select runs multiple scripts on multiple servers with a single click.

Say you want to find out the 5 largest tables in each database, on each of your 20 PostgreSQL servers. All you have to do is:

  • select the appropriate query group (you can define as many as you want, each containing a different set of servers)
  • load the script from disk (you can run as many scripts as you want)
  • run the project, and you're done! The results are returned in a single consolidated result set for easy comparison and analysis.

Imagine how SQL Multi Select can help you do your work faster. Need to create a new user account on a set of servers? Just select the appropriate query group, write the script, and run the project. Need to create a new database on a bunch of servers? Prepare the CREATE DATABASE script, select a query group, run the script, and you’re done. The possibilities are endless.

System requirements:

  • Runs on Windows XP to Windows 10.
  • Supports PostgreSQL 8.3 to 9.6, without the need for any additional database drivers.

For more information about SQL Multi Select for PostgreSQL, please visit http://www.yohz.com/sms_details.htm, or download a free 14-day trial.

About Yohz Software

Yohz Software is a developer of database applications for most popular database engines. Learn more about Yohz Software at http://www.yohz.com.

Categories: Database, Open Source

25 April 2017: NetBeans Day UK

NetBeans Highlights - Sat, 02/04/2017 - 12:37
We are very pleased to announce that the third NetBeans Day UK will be on tuesday 25th April. Our friends at University of Greenwich will again be hosting us.
Categories: Java, Open Source

21 April 2017: NetBeans Day Greece

NetBeans Highlights - Sat, 02/04/2017 - 12:37
This is an exciting time as NetBeans is migrating Apache. To learn more about this movement and the latest news regarding NetBeans, with UniSystems Hellas, come to a free event, on Friday 21 April.
Categories: Java, Open Source

7 February 2017: NetBeans Day France

NetBeans Highlights - Sat, 02/04/2017 - 12:37
La communauté Apache NetBeans vous invite pour une conférence gratuite d'une journée. Venez rencontrer d'autres utilisateurs d' Apache NetBeans, découvrir ou apprendre à utiliser Apache NetBeans.
Categories: Java, Open Source

NetBeans IDE 8.2 Patch 1 Now Available

NetBeans Highlights - Sat, 02/04/2017 - 12:37
The NetBeans Team has released a patch for NetBeans IDE 8.2 with fixes that enhance stability and performance. As you can learn more about the fixes in the NetBeans IDE 8.2 Patching Info Wiki page, the update fixes 110 bugs mainly in CND area. To obtain the fixes, NetBeans IDE 8.2 must be installed and running. Once you see an update notification in status bar, click the notification to install the updates. You can also download the fixes through the NetBeans IDE Plugins Manager (Tools > Plugins menu item) or the About dialog (Help > About menu item).
Categories: Java, Open Source

The Rise of NetBeans - Why The Increasingly Popular IDE Has Streamlined Java Application Development

NetBeans Highlights - Sat, 02/04/2017 - 12:37
Originally a student project in 1996, NetBeans has since become one of the most popular IDEs among app developers. Right out of the box, it boasts a code generator, debugging tools, a GUI builder, and support for your choice of programming language (Java, JavaScript, PHP, C++, HTML, and others welcome!), allowing you to easily create desktop, web, mobile, or HTML5 applications. The extensible platform is free, open-source, and backed by a dedicated community that knows best-practice software development. With their adoption by the Apatche Foundation and goals to continue to evolve alongside JDK releases, NetBeans is sure to remain a valuable resource for the open-source community well into the foreseeable future.
Categories: Java, Open Source

NetBeans Community Approves NetBeans IDE 8.2 for Release

NetBeans Highlights - Sat, 02/04/2017 - 12:37
We are pleased to announce the results of the NetBeans IDE 8.2 Community Acceptance Survey that ended October 2nd: 89% of 64 respondents agree that NetBeans IDE 8.2 Release Candidate is stable enough to be shipped! A few respondents pointed out several serious issues. We evaluated them all not to overlook some important problem. We are very delighted that all Node.js users consider the support rock solid but also high satisfaction with newly introduced Docker support and SQL Profiling is very positive. Check it out yourselves! Overall, this is good news for the NetBeans IDE 8.2 from the community, and we thank all who provided this valuable feedback!
Categories: Java, Open Source

Build with NetBeans IDE, Deploy to Oracle Java Cloud Service

NetBeans Highlights - Sat, 02/04/2017 - 12:37
Save time and effort deploying applications. Learn to set up Oracle Java Cloud Service, then install and use the Oracle Cloud plugin in the NetBeans IDE.
Categories: Java, Open Source

Build a Rich Client Platform To-Do Application in NetBeans IDE

NetBeans Highlights - Sat, 02/04/2017 - 12:37
Practice using NetBeans IDE features that improve code quality and increase developer productivity.
Categories: Java, Open Source

Video: Installing and Using Java ME SDK 8.0 Plugins in NetBeans IDE

NetBeans Highlights - Sat, 02/04/2017 - 12:37
This screencast demonstrates installation and usage of Oracle Java ME SDK 8.0 Plugins in NetBeans IDE on the Windows operating system.
Categories: Java, Open Source