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.5.3, 9.4.8, 9.3.13, 9.2.17 and 9.1.22 Released!

PostgreSQL News - Fri, 05/13/2016 - 01:00
2016-05-12 Cumulative Bug Fix Release

The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 9.5.3, 9.4.8, 9.3.13, 9.2.17 and 9.1.22. This release fixes a number of issues reported by users over the last two months. Most database administrators should plan to upgrade at the next available downtime, unless they have been affected directly by the fixed issues.

Bug Fixes and Improvements

This update fixes several problems which caused downtime for users, including:

  • Clearing the OpenSSL error queue before OpenSSL calls, preventing errors in SSL connections, particularly when using the Python, Ruby or PHP OpenSSL wrappers
  • Fixed the "failed to build N-way joins" planner error
  • Fixed incorrect handling of equivalence in multilevel nestloop query plans, which could emit rows which didn't match the WHERE clause.
  • Prevented two memory leaks with using GIN indexes, including a potential index corruption risk.

The release also includes many other bug fixes for reported issues, many of which affect all supported versions:

  • Fix corner-case parser failures occurring when operator_precedence_warning is turned on
  • Prevent possible misbehavior of TH, th, and Y,YYY format codes in to_timestamp()
  • Correct dumping of VIEWs and RULEs which use ANY (array) in a subselect
  • Disallow newlines in ALTER SYSTEM parameter values
  • Avoid possible misbehavior after failing to remove a tablespace symlink
  • Fix crash in logical decoding on alignment-picky platforms
  • Avoid repeated requests for feedback from receiver while shutting down walsender
  • Multiple fixes for pg_upgrade
  • Support building with Visual Studio 2015

This update also contains tzdata release 2016d, with updates for Russia, Venezuela, Kirov, and Tomsk.

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. 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

Devit-JDT

Date Created: Thu, 2016-05-12 10:31Date Updated: Wed, 2016-05-18 16:18Submitted by: Lei XiaoBao

- Enchanted spell check support camelcased java variable method name。

A small patch on org.eclipse.jdt to support some feature needed by everybody.

feature

Patch default spelling engine to support check java package ,class ,method ,variable declaration and also support camel case. spelling support camel case
We can check:

package declaration(last segment)
class, method,parameter name
any variable
Note: We only check declaration part in order to minimum developer's attention. We ignore:

method with @Override
note Sine spelling checker can not get AST of java file. I have to use three regular expression pattern to match package,class name,method name and variable. So there maybe some performance problem if file is large.

some usefule code template for java
2.1 newlist,newmap,newset

type newlist and hit content assistant key (alt+/ or ctrl+space) and select newlist template and code will show:

newlist template

//newlist
List<T> V = new ArrayList<T>(10);
//newmap
Map<K, V> map = new HashMap<K, V>(10);
//newset
Set<K> set = new HashSet<K>(10);
//logger
//create static slf4j logger for class,and automatic import org.slf4j.Logger,org.slf4j.LoggerFactory
//test
//create @Test method,and automatic import org.junit.Assert.* ,org.hamcrest.Matchers

Categories: Open Source

NetBeans Plugin Portal and Bugzilla down for maintenance

NetBeans Highlights - Thu, 05/12/2016 - 09:08
Please be informed that NetBeans Bugzilla and NetBeans Plugin Portal are down for maintenance. We apologize for any inconvenience and thank you for your understanding. The NetBeans team
Categories: Java, Open Source

LOEclipse

Date Created: Thu, 2016-05-12 02:11Date Updated: Mon, 2016-07-25 11:16Submitted by: Samuel Mehrbrodt

LibreOffice Eclipse plugin for extension development

To get started, check out the LibreOffice Starter Extension!

Categories: Open Source

PostgreSQL 9.6 Beta 1 Released

PostgreSQL News - Thu, 05/12/2016 - 01:00

The PostgreSQL Global Development Group announces today that the first 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, although some details will change before then. Users are encouraged to begin testing their applications against this latest release.

Major Features of 9.6

Version 9.6 includes significant changes and exciting enhancements including:

  • Parallel sequential scans, joins and aggregates
  • Support for consistent, read-scaling clusters through multiple synchronous standbys and "remote_apply" synchronous commit.
  • Full text search for phrases
  • postgres_fdw can now execute sorts, joins, UPDATEs and DELETEs on the remote server
  • Decreased autovacuum impact on big tables by avoiding "refreezing" old data.

In particular, parallel execution should bring a noticeable increase in performance to supported queries.

Help Test for Bugs

As with other major releases, the improvements in PostgreSQL include changes to large amounts of code. We count on you to test the altered version with your workloads and testing tools in order to find bugs and regressions before the release of PostgreSQL 9.6.0. In addition to testing that the new features work as documented, consider testing the following:

  • Do parallel queries actually improve performance for you?
  • Can you make parallel queries crash or lose data?
  • Do our code changes cause PostgreSQL to not function on your platform?
  • Does improved vacuum freezing safely reduce autovacuum of large tables?
  • Does phrase search return the results you expect?

Version 9.6 Beta 1 also makes changes to the binary backup API. Administrators should test version 9.6 with PostgreSQL backup tools, including pgBackRest, Barman, WAL-E, and other packaged and in-house software.

As this is a Beta, minor changes to database behaviors, feature details, and APIs are still possible. Your feedback and testing will help determine the final tweaks on the new features, so test soon. The quality of user testing helps determine when we can make a final release.

Beta Schedule

This is the first 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.

Links
Categories: Database, Open Source

PostgreSQL 9.6 Beta 1 Released

PostgreSQL News - Thu, 05/12/2016 - 01:00

The PostgreSQL Global Development Group announces today that the first 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, although some details will change before then. Users are encouraged to begin testing their applications against this latest release.

Major Features of 9.6

Version 9.6 includes significant changes and exciting enhancements including:

  • Parallel sequential scans, joins and aggregates
  • Support for consistent, read-scaling clusters through multiple synchronous standbys and "remote_apply" synchronous commit.
  • Full text search for phrases
  • postgres_fdw can now execute sorts, joins, UPDATEs and DELETEs on the remote server
  • Decreased autovacuum impact on big tables by avoiding "refreezing" old data.

In particular, parallel execution should bring a noticeable increase in performance to supported queries.

Help Test for Bugs

As with other major releases, the improvements in PostgreSQL include changes to large amounts of code. We count on you to test the altered version with your workloads and testing tools in order to find bugs and regressions before the release of PostgreSQL 9.6.0. In addition to testing that the new features work as documented, consider testing the following:

  • Do parallel queries actually improve performance for you?
  • Can you make parallel queries crash or lose data?
  • Do our code changes cause PostgreSQL to not function on your platform?
  • Does improved vacuum freezing safely reduce autovacuum of large tables?
  • Does phrase search return the results you expect?

Version 9.6 Beta 1 also makes changes to the binary backup API. Administrators should test version 9.6 with PostgreSQL backup tools, including pgBackRest, Barman, WAL-E, and other packaged and in-house software.

As this is a Beta, minor changes to database behaviors, feature details, and APIs are still possible. Your feedback and testing will help determine the final tweaks on the new features, so test soon. The quality of user testing helps determine when we can make a final release.

Beta Schedule

This is the first 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.

Links
Categories: Database, Open Source

Googlers on the road: OSCON 2016 in Austin

Google Open Source Blog - Mon, 05/09/2016 - 18:17
Developers and open source enthusiasts converge on Austin, Texas in just under two weeks for O’Reilly Media’s annual open source conference, OSCON, and the Community Leadership Summit (CLS) that precedes it. CLS runs May 14-15 at the Austin Convention Center followed by OSCON from May 16-19.

OSCON 2014 program chairs including Googler Sarah Novotny.
Photo licensed by O'Reilly Media under CC-BY-NC 2.0.
This year we have 10 Googlers hosting sessions covering topics including web development, machine learning, devops, astronomy and open source. A list of all of the talks hosted by Googlers alongside related events can be found below.
If you’re a student, educator, mentor, past or present participant in Google Summer of Code or Google Code-in, or just interested in learning more about the two programs, make sure to join us Monday evening for our Birds of a Feather session.

Have questions about Kubernetes, Google Summer of Code, open source at Google or just want to meet some Googlers? Stop by booth #307 in the Expo Hall.


Thursday, May 12th - GDG Austin7:00pm   Google Developers Group Austin Meetup


Sunday, May 15th - Community Leadership Summit10:00am  Occupational Hazard by Josh Simmons


Monday, May 16th9:00am   Kubernetes: From scratch to production in 2 days by Brian Dorsey and Jeff Mendoza7:00pm   Google Summer of Code and Google Code-in Birds of a Feather


Tuesday, May 17th9:00am   Kubernetes: From scratch to production in 2 days by Brian Dorsey and Jeff Mendoza9:00am   Diving into machine learning through TensorFlow by Julia Ferraioli, Amy Unruh and Eli Bixby


Wednesday, May 18th1:50pm    Open source lessons from the TODO Group by Chris DiBona, Chris Aniszczyk, Nithya Ruff, Jeff McAffer and Benjamin VanEvery5:10pm    Scalable bidirectional communication over the Web by Wenbo Zhu


Thursday, May 19th
11:00am  Kubernetes hackathon at OSCON Contribute hosted by Brian Dorsey, Nikhil Jindal, Janet Kuo, Jeff Mendoza, John Mulhausen, Sarah Novotny, Terrence Ryan and Chao Xu2:40pm    Blocks in containers: Lessons learned from containerizing Minecraft by Julia Ferraioli5:10pm    PANOPTES: Open source planet discovery by Jennifer Tong and Wilfred Gee5:10pm    Stop writing JavaScript frameworks by Joseph Gregorio


Haven’t registered for OSCON yet? You can knock 25% off the cost of registration by using discount code Google25, or attend parts of the event including our Birds of a Feather session for free by using discount code OSCON16XPO.

See you at OSCON!
By Josh Simmons, Open Source Programs Office
Categories: Open Source

Eclipse Project Neon (4.6) M7 - New and Noteworthy

Eclipse News - Mon, 05/09/2016 - 15:30
New and noteworthy features available in the Neon milestone build M7. Now available for download.
Categories: Open Source

Projects of the Week, May 9, 2016

SourceForge.net: Front page news - Mon, 05/09/2016 - 05:20

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

K-Meleon

K-Meleon is a fast and customizable web browser that can be used instead of Internet Explorer on Windows. Powered by the same Gecko engine as the Firefox and Mozilla browsers, K-Meleon provides users with a secure browsing experience.
[ Download K-Meleon ]


NAPS2 (Not Another PDF Scanner 2)

Visit NAPS2’s home page at www.naps2.com. NAPS2 is a document scanning application with a focus on simplicity and ease of use. Scan your documents from WIA- and TWAIN-compatible scanners, organize the pages as you like, and save them as PDF, TIFF, JPEG, PNG, and other file formats. Requires .NET Framework 4.0 or higher. NAPS2 is currently available in over 30 different languages. Want to see NAPS2 in your preferred language? Help translate! See the wiki for more details. This is a fork of the NAPS project with many improvements.
[ Download NAPS2 (Not Another PDF Scanner 2) ]


gretl

gretl is a cross-platform software package for econometric analysis, written in the C programming language.
[ Download gretl ]


x264vfw

x264vfw is the VfW (Video for Windows) version of well known x264 encoder + ffh264 decoder (from FFmpeg/Libav project).
[ Download x264vfw ]


ChaletOS

We all know someone who tried to switch to Linux but was unsuccessful. The system that he tried was too different from what he was used to, there were too many new things and the old things were not where he expected. The goal of this project is to let anyone get used to Linux. This system is not too different from Xubuntu, on which it is based, but ChaletOS has a style that everyone knows well, appealing simplicity and an impressive speed. All this will let them to fall in love with this system quickly. Because of its small hardware requirements it will revive some old machines and refresh others, not so old. The name ChaletOS came from the style of the mountain houses in Switzerland. The concept of these houses is similar to the concept that we had while we made this system: simplicity, beauty and recognizability. Since we want the new users to feel at home, we hope this project will meet this goal.
[ Download ChaletOS ]


Super Audio CD Decoder

Super Audio CD Decoder input plugin for foobar2000. Decoder is capable of playing back Super Audio CD ISO images, DSDIFF and DSF files. Direct DSD playback for compatible devices.
[ Download Super Audio CD Decoder ]


ThumbApps

Critics, tipping software updates, new software suggestions (make sure it’s free or—even better—FOSS/free open source software), just Google+ us! And to software publisher who wishes their portablized software taken down from our blog, can also tips us on Google+. We promise to take it down without questions, but please be patient—since we don’t have an always-on Internet connection—we can’t respond promptly, but we WILL :) …thanks for your patience, and sorry for being such a NAUGHTY uploader! All softwares are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. YOU USE AT YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, DAMAGES, AND LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THESE SOFTWARES.
[ Download ThumbApps ]


LXLE

Change is good but changing everything isn’t always great. Same is true for aging computers and their operating systems. Support is sometimes lost too quickly with a 6 month core release cycle. Graphics & Audio cards and chipsets get dropped along with other miscellaneous functions with programs or drivers that just go missing. We all like having updated software we certainly don’t like down time or loss of features and capabilities. I believe most aging hardware just needs the right system on it, and lets face it, it helps keep a couple bucks in your pocket if you can squeeze a few more years out of your current system; without sacrificing, performance, capability, usability and of course aesthetics. http://lxle.net/forums/
[ Download LXLE ]


budgie-remix

Budgie-desktop built upon the Ubuntu foundations Support: https://www.reddit.com/r/budgieremix https://plus.google.com/u/0/communities/106822666079268690759
[ Download budgie-remix ]

Categories: Open Source

Red Hat JBoss Developer Studio Integration Stack

Date Created: Fri, 2016-05-06 13:32Date Updated: Thu, 2016-06-09 10:13Submitted by: JBoss Tools

Red Hat JBoss Developer Studio Integration Stack includes Red Hat JBoss Developer Studio plus:

* JBoss Fuse Tooling - Tooling for Red Hat JBoss Fuse, specifically for integrating and developing software components that work with Apache ServiceMix, ActiveMQ and Camel. It features Fuse Data Transformation tooling, SwitchYard and access to the Fuse SAP Tool Suite.
* BRMS Tooling - Tools related to business processes and rules development - includes support for BPEL, BPMN2, jBPM6 and Drools.
* JBoss Data Virtualization - Tools related to data virtualization such as persistence and transformation - includes support for JCR CND Editor, Teiid Designer and Modeshape.

For a quick overview, see Integration Stack documentation .

See also: http://www.redhat.com/products/jbossenterprisemiddleware/developer-studio/

The latest release was built with Eclipse 4.5 (Mars.2), but should also work with other Mars or Eclipse 4.5.x versions.

NOTE: If you encounter problems, please open an issue

Categories: Open Source

Characteristics of Great Open Source Documentation

SourceForge.net: Front page news - Fri, 05/06/2016 - 05:10

Where there’s an open source project, there’s bound to be documentation. But the question is, is it great documentation, or is it just “good enough”?

Documentation can often fall in the latter category, mainly because it isn’t given the proper respect and recognition that’s due. While documentation may not be considered the “meat” of a project, it certainly plays a significant role. Without it, you’d hardly have any users and contributions would cease to exist. And even if it is present, if it is not crafted well, it still won’t be effective in encouraging users and contributors.

It’s important therefore, not just to create documentation but to make it exceptional. Any less and it will fail to fulfill its purpose, which is to easily guide users and encourage them to use, share, adapt and contribute to the project.

Defining Greatness
In order to create great documentation, we must first define exactly what this “greatness” means. So what are the characteristics of great documentation?

  • Inclusive

The very nature of open source means that projects ought to be open to anyone who wants to use or change it. Documentation must therefore be as inclusive as possible. This means using simple, easy-to-understand language, making sure final docs are in the formats most users are familiar with and require, and offering clear invitations and opportunities for contributions.

  • User-friendly

Great documentation is not just read, it is easily understood and applied. To that end it needs to exhibit the three C’s : clear, consistent and concise. You have to use clear, unambiguous terms and keep the phrasing as simple and concise as possible. The less time readers spend trying to figure out what you’re saying, the more time they can work with your software and make meaningful contributions. It also has to be consistent: in word choices, in markup style and writing style. Apart from these three C’s, it’s important to offer documentation that’s less mechanical and more conversational, such as FAQs and blog posts. Offering samples and screenshots also goes a long way to making your documentation more user-friendly.

  • Tested

The best documentation is one that doesn’t need further clarification. One sure way you can achieve this is to test your documentation or better yet, have it tested by a beginner. By testing it you can check which areas are unclear, missing or don’t achieve intended results.

  • Forward-thinking

Aside from being accommodating to current users, great documentation considers the needs of future users. This means that you should keep word choices consistent to make future translations more efficient, be open to feedback and provide updates whenever it is needed.

These are just some of the most common characteristics of great documentation. In the end however, what really defines great documentation is how well it is able to attract contributors, enhance the quality of the code and grow the community.

What other features do you consider pivotal in great open source documentation? Share your thoughts in the comments section below.

Categories: Open Source

May 2016, “Staff Pick” Project of the Month – Arch Bang

SourceForge.net: Front page news - Thu, 05/05/2016 - 05:20

For our May “Staff Pick” Project of the Month, we selected ArchBang, a simple GNU/Linux distribution that provides a lightweight Arch Linux system combined with the OpenBox window manager. Mr. Green, the current developer of ArchBang, shared some thoughts about the project’s history, purpose, and direction.

SourceForge (SF): What made you start this?
ArchBang (AB): I took over development of iso for Will at the time to allow him to focus on his studies.

SF: Has the original vision been achieved?
AB: Mostly; we try to keep iso to a minimum with all the tools you need to install and set up archlinux.

SF: Who can benefit the most from your project?
AB: Newcomers to Arch, Linux or even more experienced users who want a comfortable portable system.

SF: What core need does ArchBang fulfill?
AB: [The need for an Arch Linux system] that’s light, easy-to-use, fast, and up-to-date (as possible).

SF: What’s the best way to get the most out of using ArchBang?
AB: Try it live or load and run from ram, get the feel of Archlinux without having to install, break or risk your own system.

SF: What has your project team done to help build and nurture your community?
AB: We tend to keep things friendly and light-hearted. [We] pride ourselves on helping out when we can or at least point a user in the right direction.

SF: Have you all found that more frequent releases helps build up your community of users?
AB: Not really noticed that so much; we aim to release every three months (seasonal) subject to any major changes in Archlinux.

SF: How has SourceForge and its tools helped your project reach success?
AB: [It has] allowed users to find and download isos easily.

SF: What is the next big thing for ArchBang?
AB: Working towards a system free iso…

SF: How long do you think that will take?
AB: Hopefully within a few months we can have a fully working release.

SF: Do you have the resources you need to make that happen?
AB: Always looking to upgrade hardware; builds currently limited to the power of my laptop.

SF: If you had it to do over again, what would you do differently for ArchBAng?
AB: For me keeping things light and gui free would be ideal.

SF: Is there anything else we should know?
AB: Special thanks goes to Oliver and Pablokal

Categories: Open Source

Lightning Workbench

Date Created: Wed, 2016-05-04 05:55Date Updated: Wed, 2016-05-04 09:17Submitted by: Loic Gammaitoni
  • Create modelling languages from scratch, following an agile design process read more
  • Provide intuitive domain specific visualisations to existing models read more
  • Seamlessly execute language specifications for both verification and validation purposes read more
  • Specify analysable and efficiently computable model transformations read more
  • Deploy in one click lightweight web editors for an easy access by your users of your language specification.
Categories: Open Source

XRay: a function call tracing system

Google Open Source Blog - Tue, 05/03/2016 - 15:58
At Google we spend a lot of time debugging and tuning the performance of our production systems. Some standard practices when doing this involves using profilers, debuggers, and analysis of logs and execution traces. Doing this at scale, in production, is difficult. One of the ways for getting high fidelity data from production systems is to build applications with instrumentation, and then reconstruct the instrumentation data into a form humans can consume (summary statistics, reports, etc.). Instrumentation comes at a cost though, sometimes too high to make it feasible to deploy in production.

Getting this balance right is hard. This is why we've developed XRay, a function call tracing system that has very little overhead when not enabled, but can be dynamically turned on and only impose moderate costs. XRay works as a combination of compiler-inserted instrumentation points which functionally do nothing (called "nop sleds") and a library that can be enabled and disabled at runtime which replaces the nop sleds with the appropriate instrumentation instructions.

We've been using XRay to debug internal systems, from core infrastructure services like Bigtable to ad serving systems. XRay's detailed function tracing has enabled several teams in Google to debug issues that would be really hard to solve without XRay.

We think XRay is an important piece of technology, not only at Google, but for developers around the world. It's because of this that we're working on making XRay opensource. To kick-start that process, we're releasing a white paper describing the technical details of XRay. In the following weeks, we will be engaging the LLVM community, where we are committed to making XRay available for wide use and distribution.

We hope that by open-sourcing XRay we can contribute to the advancement of debugging real-world applications. We're looking forward to working with the LLVM community and other projects to make the data XRay generates useful for debugging a wide variety of applications.

By Dean Michael Berris, Google Engineering
Categories: Open Source

eKite

Date Created: Tue, 2016-05-03 03:25Date Updated: Wed, 2016-05-04 09:16Submitted by: Felix Voituret

eKite is an Eclipse plugin that brings integration for Kite programming copilot for all text editors.

Categories: Open Source

May 2016, “Community Choice” Project of the Month – Libjpeg-turbo

SourceForge.net: Front page news - Mon, 05/02/2016 - 17:15

For our May “Community Choice” Project of the Month, the community elected Libjpeg-turbo, a SIMD-accelerated libjpeg-compatible JPEG codec library. D.R. Commander, the developer and maintainer of Libjpeg-turbo, shared some thoughts about the project’s history, purpose, and direction.

SourceForge (SF): Tell me about the Libjpeg-turbo project please.
D.R. Commander (DRC): Libjpeg-turbo is a high-speed JPEG compression/decompression library that implements the libjpeg API used by a wide variety of applications (both open source and proprietary.) libjpeg-turbo accelerates the most common compression and decompression paths for JPEG images by as much as 6x relative to libjpeg, through the use of SIMD instructions on x86, ARM, PowerPC, and MIPS CPUs. libjpeg-turbo is now included in most open source operating systems (soon including Android) and is used by popular web browsers (notably Firefox and Chrome), so most people reading this are probably using libjpeg-turbo on a daily basis, whether they realize it or not.

SF: What made you start this?
DRC: My other pet projects (VirtualGL and TurboVNC) are high-performance open source remote display tools for 3D applications, so they have always needed some sort of high-speed image codec in order to stream the output of 3D applications in real time over various types of networks. “Back in the day”, I was using vendor-specific high-speed JPEG codecs, such as the Intel Performance Primitives and Sun mediaLib, but these weren’t always open source. Miyasaka Masaru developed MMX and SSE2 extensions for libjpeg in 2006. The TigerVNC developers adopted his code and did some further work on it, then they hired me in early 2009 to add 64-bit SSE2 support and to add colorspace extensions for compressing from/decompressing to 32-bit buffers. Eventually this codec matured enough that I was able to “eat my own dog food” and adopt it in VirtualGL and TurboVNC. At some point, developers in the streaming video community caught wind of our work and encouraged me to spin off the “libjpeg/SIMD” codec into a standalone project, so that other applications could easily take advantage of it. Thus, in early 2010, libjpeg-turbo was born. Some of the earliest adopters of it, outside of the remote display community, were applications that monitor security cameras.

SF: Has the original vision been achieved?
DRC: I believe it has. In fact, in most cases libjpeg-turbo now out-performs those proprietary/vendor-specific JPEG libraries that I used to use “back in the day.” Furthermore, I believe that libjpeg-turbo has helped to further Tom Lane’s original vision for libjpeg. In the release notes for libjpeg v6b, the last version that he worked on, he mentions performance enhancements as being “of great interest” for future development. Tom’s vision was to encourage wide adoption of the JPEG standard by providing a ubiquitous and legally-unencumbered JPEG codec library. libjpeg-turbo further encourages wide adoption of the JPEG standard by making JPEG fast enough to use with real-time compression/decompression tasks, which previously weren’t possible with libjpeg. Because libjpeg-turbo implements the industry-standard libjpeg API, applications that were already written to use this API can, without modification, take advantage of the additional speed in libjpeg-turbo. New applications also have the option of using the TurboJPEG API, which allows them to more straightforwardly compress/decompress images without dealing with the complexities of the libjpeg API. The TurboJPEG API also exposes functionality that would be very difficult to achieve with the libjpeg API, such as compressing from/decompressing to YUV planar image formats and doing multiple lossless transforms on the same JPEG image. We are making JPEG a lot faster and easier to use, and this enables use cases that previously wouldn’t have been possible with open source tools.

SF: Who can benefit the most from your project?
DRC: Applications that need to compress/decompress JPEG images in real time (for instance, video applications or remote display applications) benefit the most from libjpeg-turbo. Those applications were previously forced to trade off better performance for better compression, but libjpeg-turbo allows them to have both.

SF: What core need does Libjpeg-turbo fulfill?
DRC: The need for an industry-standard, ubiquitous, easy-to-use, high-speed JPEG library. Both libjpeg-turbo and libjpeg v7 and later evolved from Tom Lane’s work (he was the sole developer of libjpeg v6b and prior); but whereas libjpeg in the post-Tom Lane era has moved in the direction of introducing clever but incompatible and non-standard extensions to the JPEG format, libjpeg-turbo has instead moved in the direction of greatly speeding up the functionality that was already there, and making it easier to use. Apparently a lot of people preferred our approach.

SF: What’s the best way to get the most out of using Libjpeg-turbo?
DRC: Applications that were written to use the libjpeg API should “just work” with libjpeg-turbo, but if they have to compress from/decompress to 32-bit buffers, then they can take advantage of the libjpeg-turbo colorspace extensions in order to increase performance even more. A lot of new applications are using the TurboJPEG API instead, because it’s so much easier to use (although it doesn’t support some of the more advanced features of the libjpeg API, such as buffered I/O.) It also goes without saying that libjpeg-turbo will be of the most benefit on CPUs whose SIMD instructions we support (x86, ARM, PowerPC, MIPS.) Also, it will be necessary to compress/decompress baseline JPEG images in order to achieve peak performance (SIMD acceleration for progressive JPEGs is still a work in progress.)

SF: What has your project team done to help build and nurture your community?
DRC: libjpeg-turbo is a one-person shop. Over the years, I have received some big code contributions, particularly for things like SIMD support on ARM and MIPS processors, but I’ve always been the sole maintainer and, with the exception of outside patch submissions, the sole developer. The libjpeg-turbo community initially formed on its own, because there was a pent-up demand for a library that furthered Tom Lane’s work without breaking backward compatibility with libjpeg v6b. Also, a lot of developers liked the fact that our project maintains a fully open code repository and issue trackers, things that have traditionally not existed with libjpeg. Since its early days, I have built the libjpeg-turbo community simply by being as responsive as I could to the needs of libjpeg-turbo users, and evolving the project in the direction that most of them seemed to want it to go.

SF: Have you all found that more frequent releases helps build up your community of users?
DRC: There’s always a balance to be struck between releasing too often and not releasing often enough. Our community of “users” largely consists of application developers, and they (as I) are more concerned with quality over quantity. Thus, libjpeg-turbo has traditionally fallen somewhere between ESR’s classic metaphors of the cathedral and the bazaar. Major releases are dictated by new features, and new features are dictated by community demand. I always strive to implement and release bug fixes as quickly as possible, but I take great care to ensure that all new features are fully vetted– that they truly solve a well-defined problem in as elegant a way as possible, without creating any backward incompatibilities or regressions. Above all, I want libjpeg-turbo (and all of my other projects) to have the maximum possible utility, stability, and performance. I treat performance as a measure of quality, so any drop in performance is considered to be a bug. Our releases are dictated by whether there are sufficient changes relative to the prior release to justify a new release, and I would much rather delay a release than put out something that is half-baked or irrelevant. I use a traditional release model, whereby I put out a beta release, a final release (usually 3 months following the beta), then usually one or two subsequent bug-fix releases (minor revisions) for each major revision. So to answer your question, it isn’t the frequency of releases that builds the community of users– it’s being responsive to what the users really want. They mostly want libjpeg-turbo to change only if the change is compelling, and they want assurance that these changes will be implemented elegantly, with an eye toward ease of readability and maintenance, and without compromising stability or performance.

SF: What was the first big thing that happened for your project?
DRC: Probably the inclusion of libjpeg-turbo in Fedora. I never set out to build an industry-standard JPEG library. Originally I just wanted to build a fast, open source JPEG library that I could use in my own remote display projects. Red Hat was the first one to include libjpeg-turbo in their O/S distribution, and it kind of snowballed from there.

SF: What helped make that happen?
DRC: In addition to its increased performance, many O/S distributors (including Red Hat) and application developers also gravitated toward libjpeg-turbo because it maintained backward ABI compatibility with libjpeg v6b. Thus, if an O/S was already using libjpeg v6b, they could switch all of their bundled applications to libjpeg-turbo without rebuilding them. libjpeg v7 and later broke backward ABI compatibility, and thus applications had to be recompiled if they wanted to switch from libjpeg v6b to one of the newer IJG releases. Backward ABI compatibility has always been a problem in libjpeg, because all of the structures in the API are exposed. However, libjpeg v6b was out there for such a long time before libjpeg v7 was released (more than 11 years) that the libjpeg v6b ABI became something of a de facto standard, and when libjpeg v7 broke backward ABI compatibility, that caused problems for a lot of developers and integrators. Many of them decided that the features introduced in libjpeg v7 and later weren’t compelling enough to justify breaking backward compatibility, so that drove them toward libjpeg-turbo, irrespective of the performance improvements.

SF: How has SourceForge and its tools helped your project reach that success?
DRC: I particularly like the file release system on SourceForge, because it helps me track the number of downloads for a particular release (which helps to gauge its rate of adoption.) Also, because SourceForge supports SSH, I can easily push new releases and pre-releases to SF as part of my automated build process. Back when the Allura transition took place, I suggested (and the SF developers implemented) several enhancements to the code viewer that helped me maintain my preferred code review workflow.

SF: What is the next big thing for Libjpeg-turbo?
DRC: I’m currently working on extending the library to support AVX2 instructions, which we’re hoping will increase performance by 20-30% on newer x86 platforms that support that instruction set. This feature is being enabled by code contributions and funding from Intel. Another project on the horizon is SIMD acceleration for progressive JPEG compression, which should speed up the compression of progressive JPEGs by about 2x.

SF: How long do you think that will take?
DRC: I expect that both features will land this Fall.

SF: Do you have the resources you need to make that happen?
DRC: The two aforementioned features are funded, but in general, I rely on donations and funded development opportunities to keep this project moving forward. I am an independent developer, so I don’t draw a salary for my work on open source projects. I do things that way because it allows me to keep these projects vendor-agnostic and free of any one organization’s agenda, but the downside is that I have to frequently ask for money in order to keep the lights on. Even if someone else develops a new feature and submits it as a patch, the best-written patches will still require many hours of work to clean up and integrate. It’s hard sometimes to make people understand that maintaining a high-quality open source project costs money, even though the software itself is free. In general, only about half of the work I do on libjpeg-turbo is paid for (either directly, through funded development and donations, or indirectly, through funding from my other open source projects that use libjpeg-turbo.) The other half is pro bono, and it’s a constant struggle to balance the need to move the project forward with the need to put food on the table.

SF: If you had to do it over again, what would you do differently for Libjpeg-turbo?
DRC: I would have probably chosen a different name. There has been a great deal of confusion over the fact that our project is called “libjpeg-turbo” but we provide an API called “TurboJPEG”. However, there’s too much traction at this point to consider a name change.

[ Download Libjpeg-turbo ]

Categories: Open Source

Projects of the Week, May 2, 2016

SourceForge.net: Front page news - Mon, 05/02/2016 - 05:05

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

Octave-Forge

Octave-Forge is a central location for the collaborative development of packages for GNU Octave. The Octave-Forge packages expand Octave’s core functionality by providing field specific features via Octave’s package system. For example, image and signal processing, fuzzy logic, instrument control, and statistics packages are examples of individual Octave-Forge packages. GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. Octave is normally used through its interactive command line interface, but it can also be used to write non-interactive programs. The Octave language is quite similar to Matlab so that most programs are easily portable.
[ Download Octave-Forge ]


WinPython

WinPython is a free open-source portable distribution of the Python programming language for Windows XP/7/8, designed for scientists, supporting both 32bit and 64bit versions of Python 2 and Python 3. Since September 2014, Development has moved to https://winpython.github.io/
[ Download WinPython ]


gnuplot

A famous scientific plotting package, features include 2D and 3D plotting, a huge number of output formats, interactive input or script-driven options, and a large set of scripted examples.
[ Download gnuplot ]


iDempiere

iDempiere = OSGi + ADempiere iDempiere Business Suite ERP/CRM/SCM done the community way. Focus is on the Community that includes Subject Matter Specialists, Implementors and End-Users. iDempiere is based on original Compiere/Adempiere plus a new architecture to use state-of-the-art technologies like OSGi, Buckminster, zk.
[ Download iDempiere ]


GnuCash

GnuCash is a personal and small-business finance manager with a check-book like register GUI to enter and track bank accounts, stocks, income and expenses. GnuCash is designed to be simple and easy to use but still based on formal accounting principles.
[ Download GnuCash ]


rEFInd

rEFInd is a fork of the rEFIt boot manager. Like rEFIt, rEFInd can auto-detect your installed EFI boot loaders and it presents a pretty GUI menu of boot options. rEFInd goes beyond rEFIt in that rEFInd better handles systems with many boot loaders, gives better control over the boot loader search process, and provides the ability for users to define their own boot loader entries.
[ Download rEFInd ]


NAS4Free

The NAS4Free operating system can be installed on virtually any hardware platform to share computer data storage over a computer network. ‘NAS’ as in “Network-Attached Storage” and ‘4Free’ as in ‘Free and open source’, NAS4Free is the simplest and fastest way to create an centralized and easily-accessible server for all kinds of data! NAS4Free supports sharing across Windows, Apple, and UNIX-like systems. It includes ZFS, Software RAID (0,1,5), disk encryption, S.M.A.R.T / email reports etc. with following protocols/services: CIFS/SMB (samba), Samba AD, FTP, NFS v4, TFTP, AFP, RSYNC, Unison, iSCSI, UPnP, Bittorent, Syncthing, VirtualBox and noVNC, Bridge, CARP (Common Address Redundancy Protocol) and HAST (Highly Available Storage). This all can easy be managed by a configurale webinterface.
[ Download NAS4Free ]


GNS3

GNS3 is a graphical network simulator that allows you to design complex network topologies. You may run simulations or configure devices ranging from simple workstations to powerful Cisco routers. It is based on Dynamips, Pemu/Qemu and Dynagen.
[ Download GNS3 ]


GeoServer

GeoServer is an open source software server written in Java that allows users to share and edit geospatial data. Designed for interoperability, it publishes data from any major spatial data source using open standards: WMS, WFS, WCS, WPS and REST
[ Download GeoServer ]

Categories: Open Source

Announcing the release of pglogical 1.1

PostgreSQL News - Mon, 05/02/2016 - 01:00

2ndQuadrant, the leading developers of PostgreSQL, are delighted to announce the release of pglogical 1.1 – the next generation in replication systems for PostgreSQL.

The 1.1 release brings new features along with bug fixes to pglogical. Same salient features are listed below:

  • Sequence replication support
  • Support for replica triggers
  • Foreign keys are no longer checked on the replica
  • Multiple subscriptions between single pair of nodes
  • The create_subscription function does not synchronize structure change by default
  • User can specify affected replication sets in replicate_ddl_command function
  • New functions for manipulating connection strings of nodes
  • PGLogical processes are clearly marked in the pg_stat_activity
  • Better behavior on worker crashes
  • Logging improvements
  • Ubuntu Xenial package

pglogical offers Logical Replication as a PostgreSQL extension, which provides the flexibility of trigger-based replication with the efficiency of log-based replication. This ground-breaking new technology has benefits for many key use cases

  • UPGRADE Upgrade PostgreSQL from 9.4 to 9.5, without downtime
  • SCALE OUT Copy all or a selection of database tables to other nodes in a cluster
  • AGGREGATE Accumulate changes from sharded database servers into a Data Warehouse
  • INTEGRATE Feed database changes in real-time to other systems

pglogical is open source and available for download as binary packages for PostgreSQL 9.4 and 9.5 versions. Visit http://2ndquadrant.com/pglogical/ for more detail.

2ndQuadrant’s respected 24/7 Production Support provides the fastest and highest rated response service for PostgreSQL anywhere and is available now worldwide.

2ndQuadrant leads the drive for improving the enterprise functionality for PostgreSQL, contributing major features every year in performance, replication, business intelligence and usability.

Categories: Database, Open Source

Announcing the release of pglogical 1.1

PostgreSQL News - Mon, 05/02/2016 - 01:00

2ndQuadrant, the leading developers of PostgreSQL, are delighted to announce the release of pglogical 1.1 – the next generation in replication systems for PostgreSQL.

The 1.1 release brings new features along with bug fixes to pglogical. Same salient features are listed below:

  • Sequence replication support
  • Support for replica triggers
  • Foreign keys are no longer checked on the replica
  • Multiple subscriptions between single pair of nodes
  • The create_subscription function does not synchronize structure change by default
  • User can specify affected replication sets in replicate_ddl_command function
  • New functions for manipulating connection strings of nodes
  • PGLogical processes are clearly marked in the pg_stat_activity
  • Better behavior on worker crashes
  • Logging improvements
  • Ubuntu Xenial package

pglogical offers Logical Replication as a PostgreSQL extension, which provides the flexibility of trigger-based replication with the efficiency of log-based replication. This ground-breaking new technology has benefits for many key use cases

  • UPGRADE Upgrade PostgreSQL from 9.4 to 9.5, without downtime
  • SCALE OUT Copy all or a selection of database tables to other nodes in a cluster
  • AGGREGATE Accumulate changes from sharded database servers into a Data Warehouse
  • INTEGRATE Feed database changes in real-time to other systems

pglogical is open source and available for download as binary packages for PostgreSQL 9.4 and 9.5 versions. Visit http://2ndquadrant.com/pglogical/ for more detail.

2ndQuadrant’s respected 24/7 Production Support provides the fastest and highest rated response service for PostgreSQL anywhere and is available now worldwide.

2ndQuadrant leads the drive for improving the enterprise functionality for PostgreSQL, contributing major features every year in performance, replication, business intelligence and usability.

Categories: Database, Open Source

Dojo Recap – April, 2016

The Dojo Toolkit - Announcements - Sat, 04/30/2016 - 13:53

It’s been a very productive and busy year to date as work towards Dojo 2. This post contains a quick summary of the updates we’ve made!

Dojo 1.11 released!

In late March, we released Dojo 1.11, along with updates to 1.10, 1.9, 1.8, and 1.7. Visit the Dojo download site to grab a tarball, or use GitHub, bower, or npm to install the latest versions. Note that the Google CDN has been slow to respond, and has not yet updated to 1.11.1.

The upgrade from 1.10 to 1.11 should be very straightforward, as the release is primarily a bug fix release, along with the addition of the new flat theme and a small number of additions. See the complete list of bugs closed for this release or the commits within each repository (e.g. all Dojo 1.11 commits for more information on the release!

We received a tremendous amount of community support to make this release possible. Thank you for your help!

Note that a 1.11.2 release is planned for May.

High level Dojo 2 progress

The overall Dojo 2 progress is tracked at dojo/meta:

dojo/meta status

dojo/loader and dojo/compose are now in a beta state and dojo/core and dojo/dom, while still listed as alpha due to anticipated API changes, are very usable in their current state.

In the past month, the dojo/widgets prototype has been added, and feedback is greatly appreciated. dojo/actions is another recent package addition. Kitson Kelly and Dylan Schiemann gave a brief overview of dojo/widgets and dojo/compose at a recent London Ajax event.

Support for ImmutableJS and RxJS was also added to relevant packages within Dojo 2.

Detailed Dojo 2 updates

Over the past month, we completed the following:

Core loader dom compose parser meta dojo2-package-template Dojo 2 in progress

More than 100 issues are currently in progress. Some of the highlights include:

Please let us know if you would like to get involved! Either find us on IRC, leave a comment here, or start contributing on GitHub.

I’d like to specifically thank taoqf who has become actively involved through contributions and feedback on dts-generator, dom, meta, dstore, core and loader. We greatly appreciate the help!

Categories: Open Source, RIA