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

Today in Tech – 1971 Front page news - Wed, 03/22/2017 - 05:19

This is the first of a new blog series, “Today in Tech” and will feature the significant technological events of specific dates throughout history. Today in Tech:

1971 – Intel announces that the world’s first commercial microprocessor – the Intel 4004 – is officially ready for shipping. The 4-bit central processing unit was designed by engineers Ted Hoff and Stan Mazor under the leadership of Federico Faggin, and with the assistance of Masatoshi Shima, an engineer from the Japanese firm Busicom. The microprocessor was designed in April of 1970 and completed in January of 1971, the same year when it was first made commercially available.

Categories: Open Source

Google Summer of Code 2017 student applications are open!

Google Open Source Blog - Mon, 03/20/2017 - 17:30
Are you a university student looking to learn more about open source software development? Consider applying to Google Summer of Code (GSoC) for a chance to spend your break coding on an open source project.

vertical GSoC logo.jpg

For the 13th straight year GSoC will give students from around the world the opportunity to learn the ins and outs of open source software development while working from their home. Students will receive a stipend for their successful contributions to allow them to focus on their coding during the program.

Mentors are paired with the students to help address technical questions and to monitor their progress throughout the program. Former GSoC participants have told us that the real-world experience they’ve gained during the program has not only sharpened their technical skills, but has also boosted their confidence, broadened their professional network and enhanced their resumes.

Interested students can submit proposals on the program site now through Monday, April 3 at 16:00 UTC. The first step is to search through the 201 open source organizations and review the “Project ideas” for the organizations that appeal to you. Next, reach out to the organizations to introduce yourself and determine if your skills and interests are a good match with their organization.

Since spots are limited, we recommend writing a strong project proposal and submitting a draft early to receive feedback from the organization which will help increase your chances of selection. Our Student Manual, written by former students and mentors, provides excellent helpful advice to get you started with choosing an organization and crafting a great proposal.

For information throughout the application period and beyond, visit the Google Open Source Blog, join our Google Summer of Code discussion lists or join us on Internet Relay Chat (IRC) at #gsoc on Freenode. Be sure to read the Program Rules, Timeline and FAQ, all available on the program site, for more information about Google Summer of Code.

Good luck to all the open source coders who apply, and remember to submit your proposals early — you only have until Monday, April 3 at 16:00 UTC!

By Stephanie Taylor, Google Summer of Code Program Manager
Categories: Open Source

Launch Configuration View

Date Created: Mon, 2017-03-20 03:51Date Updated: Mon, 2017-03-20 08:14SSI Schäfer IT Solutions GmbHSubmitted by: Markus Duft

The Launch Configuration View is a standalone view that can display and control all different kinds of Eclipse Launch Configurations.

The view can easily be extended (through Extension Points) to also display and control Launch Configurations from different sources (see or for an example. The LcDsl can display not-yet generated launch configurations in the view and allows seamless integration.

Categories: Open Source

Projects of the Week, March 20, 2017 Front page news - Mon, 03/20/2017 - 05:26

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

Parrot Security OS

Parrot Security OS is a cloud friendly operating system designed for Pentesting, Computer Forensic, Reverse engineering, Hacking, Cloud pentesting, privacy/anonimity and cryptography. Based on Debian and developed by Frozenbox network.
[ Download Parrot Security OS ]

Cream (for Vim)

Cream is a free, easy-to-use configuration of the famous Vim text editor for Microsoft Windows, GNU/Linux, and FreeBSD. It uses common menus, standard keyboard shortcuts, and has extensive editing functions for the beginner and expert alike. UPDATE: Development has slowed recently due to the author’s full time endeavor to begin an architectural practice ( But the project still continues to build gVim installers and add minor features and bug fixes in the Cream source code.
[ Download Cream (for Vim) ]

SynWrite add-ons

Collection of add-ons for SynWrite editor.
[ Download SynWrite add-ons ]


Cross-platform code editor, with syntax highlight for 160+ languages. Has lite interface with tabs. Has JSON config files instead of option-dialog. Supports Python plugins.
[ Download CudaText ]

Berryboot Updated OS Images

This is the biggest list of OS images for Berryboot. All these images have been tested before public availability. The original OS images were downloaded from their respective official websites, I did not modify any data of the original nor converted OS images. I convert most of the OS images by using this method: RetroPie and others already have OS images for Berryboot, I just compress it and serve as a mirror. Fedora OS images were converted by using this tool: I’m not part of the Berryboot project, I’m just a web developer with a Raspberry Pi 2. I cannot offer full support on these images. However, if you find any issue, please contact me and I’ll look into it. You can request OS images at:
[ Download Berryboot Updated OS Images ]


This project was originally designed to provide an open-source replacement for PPJoy. The product, at this point, consists of virtual joystick devices that is seen by the system as a standard joystick but its position-data is written to it by a feeder application. An existing feeder application that takes advantage of this product is SmartPropoPlus. If you are an application writer you can very easily write an application that controls a joystick (e.g. mouse-to-joystick, keyboard-to-joystick). If you are a beginner in device drivers you can take this code and enhance it to support more (or less) axes, buttons or POVs.
[ Download vJoy ]


Budgie-desktop built upon the Ubuntu foundations Support:
[ Download budgie-remix ]

Dolibarr ERP – CRM

Dolibarr ERP – CRM is an easy to use ERP and CRM open source software package (run with a web php server or as standalone software) for businesses, foundations or freelancers (prospect, invoicing, inventory, warehouse, order, shipment, POS, members for foundations, bank accounts…). Dolibarr is also available with auto-installers for users with no technical knowledge to install Dolibarr and all its prerequisites (Apache, Mysql, PHP) with just one package. Available platforms for such packages are: Windows, Debian, Ubuntu, Mint, Redhat, Fedora, OpenSuse, Mandriva, Mageia. Other platform can use the generic distribution. This is a modular product, than can be enhanced with tons of external modules (to provide you features not available by default) from Download Dolibarr ERP – CRM here or sign up for 15-day free trial of the cloud-based application with free updates and support at one of the Cloud providers
[ Download Dolibarr ERP – CRM ]

tungsten_replicator Tungsten Replicator

Tungsten Replicator is a high performance, free and open source replication engine that supports a variety of extractor and applier modules. Data can be extracted from MySQL, Oracle and Amazon RDS, and applied to numerous transactional stores and datawarehouse stores (MySQL, Oracle, and Amazon RDS; NoSQL stores such as MongoDB; Vertica, Hadoop, and Amazon RDS).

Tungsten Replicator helps technically focused users solve host of problems and offers features that surpass those of most other open source replicators. During replication, Tungsten Replication allows data to be exchanged between different databases and database versions, information can be filtered and modified, and deployment can be between on-premise or cloud-based databases. It supports parallel replication and advanced topologies such as fan-in and multi-master. It can also be used efficiently in cross-site deployments.
[ Download Tungsten Replicator ]

Categories: Open Source

Eclipse Demo Schedule at Devoxx US

Eclipse News - Mon, 03/20/2017 - 00:40
Visit the Eclipse Foundation at booth #318 on March 21-23 in San Jose, CA for some exciting demos.
Categories: Open Source

Announcing Guetzli: A New Open Source JPEG Encoder

Google Open Source Blog - Fri, 03/17/2017 - 21:59
Crossposted on the Google Research Blog

At Google, we care about giving users the best possible online experience, both through our own services and products and by contributing new tools and industry standards for use by the online community. That’s why we’re excited to announce Guetzli, a new open source algorithm that creates high quality JPEG images with file sizes 35% smaller than currently available methods, enabling webmasters to create webpages that can load faster and use even less data.

Guetzli [guɛtsli] — cookie in Swiss German — is a JPEG encoder for digital images and web graphics that can enable faster online experiences by producing smaller JPEG files while still maintaining compatibility with existing browsers, image processing applications and the JPEG standard. From the practical viewpoint this is very similar to our Zopfli algorithm, which produces smaller PNG and gzip files without needing to introduce a new format; and different than the techniques used in RNN-based image compression, RAISR, and WebP, which all need client changes for compression gains at internet scale.

The visual quality of JPEG images is directly correlated to its multi-stage compression process: color space transform, discrete cosine transform, and quantization. Guetzli specifically targets the quantization stage in which the more visual quality loss is introduced, the smaller the resulting file. Guetzli strikes a balance between minimal loss and file size by employing a search algorithm that tries to overcome the difference between the psychovisual modeling of JPEG's format, and Guetzli’s psychovisual model, which approximates color perception and visual masking in a more thorough and detailed way than what is achievable by simpler color transforms and the discrete cosine transform. However, while Guetzli creates smaller image file sizes, the tradeoff is that these search algorithms take significantly longer to create compressed images than currently available methods.

orig-libjpeg-guetzli.pngFigure 1. 16x16 pixel synthetic example of  a phone line  hanging against a blue sky — traditionally a case where JPEG compression algorithms suffer from artifacts. Uncompressed original is on the left. Guetzli (on the right) shows less ringing artefacts than libjpeg (middle) and has a smaller file size.And while Guetzli produces smaller image file sizes without sacrificing quality, we additionally found that in experiments where compressed image file sizes are kept constant that human raters consistently preferred the images Guetzli produced over libjpeg images, even when the libjpeg files were the same size or even slightly larger. We think this makes the slower compression a worthy tradeoff.
montage-cats-zoom-eye2.pngFigure 2. 20x24 pixel zoomed areas from a picture of a cat’s eye. Uncompressed original on the left. Guetzli (on the right) shows less ringing artefacts than libjpeg (middle) without requiring a larger file size.It is our hope that webmasters and graphic designers will find Guetzli useful and apply it to their photographic content, making users’ experience smoother on image-heavy websites in addition to reducing load times and bandwidth costs for mobile users. Last, we hope that the new explicitly psychovisual approach in Guetzli will inspire further image and video compression research.
By Robert Obryk and Jyrki Alakuijala, Software Engineers, Google Research Europe
Categories: Open Source

Announcing Google Radio PHY Test, aka “Graphyte”, as part of the Chromium Project

Google Open Source Blog - Fri, 03/17/2017 - 18:00
With many different Chromebook models for sale from several different OEMs, the Chrome OS Factory team interfaces with many different Contract Manufacturers (CMs), Original Device Manufacturers (ODMs), and factory teams. The Google Chromium OS Factory Software Platform, a suite of factory tools provided to Chrome OS partners, allows any factory team to quickly bring up a Chrome OS manufacturing test line.

Today, we are announcing that this platform has been extended to remove the friction of bringing up wireless verification test systems with a component called Google Radio PHY Test or “Graphyte.” Graphyte is an open source software framework that can be used and extended by the wireless ecosystem of chipset companies, test solution providers, and wireless device manufacturers, as opposed to the traditional approach of vendor-specific solutions. It is developed in Python and capable of running on Linux and Chrome OS test stations with an initial focus on Wi-Fi, Bluetooth, and 802.15.4 physical layer verification.

Verifying that a wireless device is working properly requires chipset- and instrument-specific software which coordinate transmitting and measuring power and signal quality across channels, bandwidths, and data rates. Graphyte provides high-level API abstractions for controlling wireless chipsets and test instruments, allowing anyone to develop a “plugin” for a given chipset or instrument.

Graphyte architecture.
We’ve worked closely with industry leaders like Intel and LitePoint to ensure the Graphyte APIs have the right level of abstraction, and it is already being used in production on multiple manufacturing lines and several different products.

To get started, use Git to clone our repository. You can learn more by reading the Graphyte User Manual and checking out the example of how to use Graphyte in a real test. You can get involved by joining our mailing list. If you’d like to contribute, please follow the Chromium OS Developer Guide.

To get started with the LitePoint Graphyte plugin, please contact LitePoint directly. To get started with the Intel Graphyte plugin, please contact Intel directly.

Happy testing!

By Kurt Williams, Technical Program Manager
Categories: Open Source

EclipseCon France: Last Chance to Submit!

Eclipse News - Fri, 03/17/2017 - 16:25
March 29 is the final submission deadline for EclipseCon France. Visit the CFP page for info. See you in Toulouse this June!
Categories: Open Source

Launch Configuration DSL

Date Created: Fri, 2017-03-17 07:04Date Updated: Fri, 2017-03-17 10:14SSI Schäfer IT Solutions GmbHSubmitted by: Markus Duft

The Launch Configuration DSL (LcDsl) allows to create and maintain launch configurations in Eclipse in a comfortable way. Along with LcDsl there comes a view that can be installed separately, that allows to manage and control launches in a convenient way, without the need to go through all the Eclipse dialogs.

Categories: Open Source

New Things to Try with Your Open Source Community Front page news - Fri, 03/17/2017 - 05:15


“What’s new?”

Most open source developers would answer this question by mentioning new releases, a number of new features or new versions. Rarely would they mention new changes involving the community itself, but in many cases these changes can be the most important of all.

When communities evolve and innovate, the software evolves with them. This is why it’s so important to introduce changes to the community that can help it grow.

With this in mind, here are a few good suggestions that you may want try with your community if you haven’t already:

  1. Transition from a one-man dependent operation to a team of core contributors
    Often what happens with open source projects is that one founder or leader possesses most of the knowledge the project is dependent on. In the event that this leader leaves, the project suffers greatly and may even disappear completely. To avoid this event it’s vital to transition from just one leader to a team of core contributors who handle different parts of the leader’s role. By delegating leadership roles and with proper documentation, support and communication, the leader can secure the future of the project even after he or she leaves.
  2. Starting off with similarities when resolving conflict
    Conflict is unavoidable in communities, but there are ways to handle it that can help instead of hinder community growth and cohesion. One of the most effective ways as mentioned during this year’s CLSx at is exploring similarities before going into points of conflict. By pointing out similarities first the community is reminded of the common goal, is more able to see opportunities for compromise and is less likely to engage into deeper conflict.
  3. Rewarding community members
    While every contributor enters a project with his or her own motives, it still helps to motivate them further by rewarding them for their accomplishments. But exactly for what should you reward? This depends on what your specific project goals are and what your priorities are as a community. The reward itself also depends on you. It can be as simple as a special mention on a newsletter to discounts on services or free entrance to conferences.
  4. Increasing diversity
    Diversity is one of today’s most sought-after goals and for good reason: it introduces different perspectives into a project that helps it to develop more holistically. But diversity is not something that happens out of thin air. Communities must actively participate in efforts to diversify by reaching out to different groups and lowering barriers to entry.
  5. Holding community events
    Community events may seem trivial compared to say, actual coding and work. But it’s through community events that members of all skill levels can come together and interact with each other face-to-face. It’s a great opportunity for members to get to know one another, share ideas and experiences in person, learn from one another and really feel the spirit of being a community.

These are just some ideas that you could try with your community to make it better, but there are sure to be many others. What are some of the ideas that have worked best with your own community? Share your experience with us in the comments section below.

Categories: Open Source

Microservices Plugin for Eclipse

Date Created: Thu, 2017-03-16 21:27Date Updated: Sat, 2017-03-25 15:21oneclicklabs.ioSubmitted by: Karthikeyan Sadayamuthu

Microservices Plugin for Eclipse
1) Add RestController
2) Add SoapEndpoint
3) Add Interceptor
4) Add Swagger Configuration

Under Development
1) Spring Boot Microservices Project Template
2) Spring Services
3) Spring Config Server
4) Spring OAuth 2 Security
5) ELK Logging

Categories: Open Source

Congratulations to the Open IoT Challenge 3.0 Winners!

Eclipse News - Thu, 03/16/2017 - 17:15
Eclipse IoT is pleased to announce the winners of the third annual Open IoT Challenge.
Categories: Open Source

Accessing and Managing Third-Party Libraries

DevX: Open Source Articles - Mon, 03/13/2017 - 21:49
Learn about package management in your programming language and take advantage of all the goodness that's out there.
Categories: Open Source

Projects of the Week, March 13, 2017 Front page news - Mon, 03/13/2017 - 05:05

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


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 ]

Money Manager Ex

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

Ultimate Edition

Ultimate Edition Linux, previously “Ubuntu Ultimate Edition”. We cater to a large base of *nix users including, but certainly not limited to gamers & low resource computers. We have a Ultimate Edition for virtually any user.
[ Download Ultimate Edition ]


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 but 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.
[ Download LXLE ]


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 ]

Maui Linux

Maui is a full desktop Linux distribution, that ships with the Plasma Shell workspace and many Open Source applications.
[ Download Maui Linux ]


GPerftools (formerly Google Performance Tools) is a collection of a high-performance multi-threaded malloc() implementation, plus some pretty nifty performance analysis tools useful for creating more robust applications. These tools can be especially useful when developing multi-threaded applications in C++ with templates. Among these tools are TCMalloc, a thread-friendly heap-checker, heap-profiler and cpu-profiler.
[ Download GPerftools ]


This is the download repository for TenFourFox, the Firefox port for Power Macintosh computers running 10.4 and 10.5. TenFourFox is not an official Mozilla product and is not a Mozilla-maintained build of Firefox. PowerPC forever! Our SF repo is only for hosting our current and future downloads at this time (thanks, SourceForge!); Github hosts our wiki, FAQ and issue tracker: Do not open trouble tickets here — they will be DELETED. If you are an end-user requiring support, please visit our Tenderapp support ticketing site: Read the TenFourFox Development blog for what’s next:
[ Download TenFourFox ]

winPenPack: Portable Software Collection

winPenPack is a project that aims at collecting the most frequently used and most popular open source applications made portable, so that they can be executed without installation from any USB Flash Drive or Hard Disk. The winPenPack suites offer a wide range of portable applications like office tools, internet tools, multimedia tools, development tools, security applications and other frequently used utilities. Everything you need, completely free, open source and portable!
[ Download winPenPack: Portable Software Collection ]

Categories: Open Source

Last week | Complete the IoT Developer Survey 2017

Eclipse News - Fri, 03/10/2017 - 18:25
Now's the time. Get your answers in and your voice heard! Complete the survey today.
Categories: Open Source

Getting ready for Google Summer of Code 2017

Google Open Source Blog - Fri, 03/10/2017 - 17:48
Spring is just around the corner here in the Northern Hemisphere and Google Summer of Code is fast approaching. If you are a student interested in participating this year, now is the time to prepare -- read on for tips on how to get ready.

This year we’ve accepted 201 open source organizations into the program, nearly 40 of which are new to the program. The organizations cover a wide range of topics including (but certainly not limited to!):

  • Operating systems
  • Web application frameworks
  • Healthcare and bioinformatics
  • Music and graphic design
  • Machine learning
  • Robotics
  • Security

How should you prepare for Google Summer of Code?While student applications don’t open until March 20th at 16:00 UTC, you need to decide which projects you’re interested in and what you’ll propose. You should also communicate with those projects to learn more before you apply.

Start by looking at the list of participating projects and organizations. You can explore by searching for specific names or technologies, or filtering by topics you are interested in. Follow the “Learn More” link through to each organization’s page for additional information.

Once you’ve identified the organizations that you’re interested in, take a look at their ideas list to get a sense of the specific projects you could work on. Typically, you will choose a project from that list and write a proposal based on that idea, but you could also propose something that’s not on that list.

You should reach out to the organizations after you’ve decided what you want to work on. Doing this can make the difference between a good application and a great application.

Whatever you do, don’t wait until March 20th to begin preparing for Google Summer of Code! History has shown that students who reach out to organizations before the start of the application period have a higher chance of being accepted into the program, as they have had more time to talk to the organizations and understand what they are looking for with the project.

If you have any questions along the way, take a look at the Student Manual, FAQ and Timeline. If you can’t find the answer to your question, try taking your question to the mailing list.

By Josh Simmons, Open Source Programs Office
Categories: Open Source

The Many Ways Open Source Software Give SMBs an Edge over Larger Companies Front page news - Fri, 03/10/2017 - 06:37

Size doesn’t matter. Not when you’ve got open source software on your side.

More and more small to medium-sized businesses (SMBs) are realizing that with open source software, their smaller size is no longer a hindrance. On the contrary, being a small business equipped with open source software may just give them the upper hand over larger companies. How so? It’s because open source is:

Easier on the Budget

Compared to big business proprietary software, open source software is way more budget-friendly. Basic software packages are free and even with paid additional features and services, they would still cost a lot less. This frees SMB budgets for other areas of business development.

Offers More Customization

Being open source means being able to change aspects of the software freely to suit specific business needs. SMBs need to stand out in order to compete with larger companies, and being able to customize their software and consequently their service helps them do exactly that. They are able to provide a more personalized and unique experience or service, gaining clients’ or customers’ attention and loyalty.

Encourages Collaboration that Fosters Faster Development

Open source software development is a highly collaborative effort among projects, developers and users. With such diverse groups involved and working together, the software becomes incredibly easy to improve, build onto existing software and adapt quickly to new technology and changing needs– things that often come at a much slower pace with restrictive big business proprietary software.

Provides Access to Bigger and Better Tools

Open source software provides SMBs with the tools they need to compete on a larger scale and enables them to leverage data from established brands like Twitter and Facebook. And since it also enables small companies to be more agile, it allows them to take advantage of new tools and technology before others, particularly large companies tied to proprietary software.

Allows More Focus on Creativity and Innovation

With more business resources freed from the task of developing software, the focus turns to innovation. Creativity flourishes among SMBs as they are more able to create competitive alternatives to standard technology and proprietary software. They can set themselves up to be more distinctive and forward-thinking than their bigger competitors.

If you’re currently developing or are planning to develop open source software it would be helpful to keep SMBs in mind. With the many benefits your software can offer SMBs, this segment will most likely make up a significant portion of your software’s users.

Categories: Open Source

dbMigration .NET v5 released

PostgreSQL News - Fri, 03/10/2017 - 01:00

dbMigration .NET v5 is a simple, easy and intuitive multiple database migration and sync tool, With it you can easily migrate schema and data between different databases without complicated procedures.

Supported databases: PostgreSQL, SQL Server, SQL Azure, LocalDB, MySQL, Oracle, IBM DB2, Informix, Vertica, NuoDB, Teradata, Sybase ASE, Firebird, SQLite, SQLCe, VistaDB, Access, dBase, FoxPro, Text, Excel, ODBC, OleDB...etc.

Free, All-In-One, Portable, Single executable file and Multi-language.

Major New features from version 3.8 to 5.0 (2016/10/01~2017/03/10):

  • Added support for PostgreSQL <-> VistaDB migration
  • Added support for PostgreSQL error detail message
  • Added support for PostgreSQL (one/two) dimensional arrays
  • Added Multi-Language UI (Options->Language)
  • Added Automatically generate foreign keys (PG)
  • Ability to add custom delimited file extensions
  • Improved Migrating VIEWS/FUNCTIONS/SEQUENCES definitions (PG->PG)
  • Improved Data Synchronization
  • Improved Automatic Mapping Types (UDT)
  • Improved Custom Mapping Types
  • Improved Command-Line
  • Compiled with Visual Studio 2017
  • ...and more
The new version is immediately available for download.
Categories: Database, Open Source

Another option for file sharing

Google Open Source Blog - Wed, 03/08/2017 - 17:59
Originally posted on the Google Security Blog

Existing mechanisms for file sharing are so fragmented that people waste time on multi-step copying and repackaging. With the new open source project Upspin, we aim to improve the situation by providing a global name space to name all your files. Given an Upspin name, a file can be shared securely, copied efficiently without "download" and "upload", and accessed by anyone with permission from anywhere with a network connection.

Our target audience is personal users, families, or groups of friends. Although Upspin might have application in enterprise environments, we think that focusing on the consumer case enables easy-to-understand and easy-to-use sharing.

File names begin with the user's email address followed by a slash-separated Unix-like path name:
Any user with appropriate permission can access the contents of this file by using Upspin services to evaluate the full path name, typically via a FUSE filesystem so that unmodified applications just work. Upspin names usually identify regular static files and directories, but may point to dynamic content generated by devices such as sensors or services.

If the user wishes to share a directory (the unit at which sharing privileges are granted), she adds a file called Access to that directory. In that file she describes the rights she wishes to grant and the users she wishes to grant them to. For instance,

allows Joe and Mae to read any of the files in the directory holding the Access file, and also in its subdirectories. As well as limiting who can fetch bytes from the server, this access is enforced end-to-end cryptographically, so cleartext only resides on Upspin clients, and use of cloud storage does not extend the trust boundary.

Upspin looks a bit like a global file system, but its real contribution is a set of interfaces, protocols, and components from which an information management system can be built, with properties such as security and access control suited to a modern, networked world. Upspin is not an "app" or a web service, but rather a suite of software components, intended to run in the network and on devices connected to it, that together provide a secure, modern information storage and sharing network. Upspin is a layer of infrastructure that other software and services can build on to facilitate secure access and sharing. This is an open source contribution, not a Google product. We have not yet integrated with the Key Transparency server, though we expect to eventually, and for now use a similar technique of securely publishing all key updates. File storage is inherently an archival medium without forward secrecy; loss of the user's encryption keys implies loss of content, though we do provide for key rotation.

It’s early days, but we’re encouraged by the progress and look forward to feedback and contributions. To learn more, see the GitHub repository at Upspin.

By Andrew Gerrand, Eric Grosse, Rob Pike, Eduardo Pinheiro and Dave Presotto, Google Software Engineers
Categories: Open Source