CouchDB Weekly News, April 28, 2016

Releases in the CouchDB Universe

PouchDB

Opinions and other News in the CouchDB Universe

… and in the PouchDB Universe

CouchDB Use Cases, Questions and Answers

Use Case:

  • couchdb-odm (PHP) – Doctrine CouchDB is a mapper between PHP and CouchDB documents.
  • revtree – A command line tool to visualise a CouchDB document revision tree.

Stack Overflow:

no public answer yet:

PouchDB Use Cases, Questions and Answers

Use Case:

no public answer on Stack Overflow yet:

For more new questions and answers about CouchDB, see these search results and about PouchDB, see these.

Get involved!

If you want to get into working on CouchDB:

  • We have an infinite number of open contributor positions on CouchDB. Submit a pull request and join the project!
  • Do you want to help us with the work on the new CouchDB website? Get in touch on our new website mailing list and join the website team! – www@couchdb.apache.org
  • The CouchDB advocate marketing programme is just getting started. Join us in CouchDB’s Advocate Hub!
  • CouchDB has a new wiki. Help us move content from the old to the new one!
  • Can you help with Web Design, Development or UX for our Admin Console? No Erlang skills required! – Get in touch with us.
  • Do you want to help moving the CouchDB docs translation forward? We’d love to have you in our L10n team! See our current status and languages we’d like to provide CouchDB docs in on this page. If you’d like to help, don’t hesitate to contact the L10n mailing list on l10n@couchdb.apache.org or ping Andy Wenk (awenkhh on IRC).

We’d be happy to welcome you on board!

Events

Job opportunities for people with CouchDB skills

Time to relax!

  • “Melomind tracks your brain activity in real time and sends the info to your phone so that the music evolves according to your level of stress. Thanks to this neurofeedback model, you should already feel more relaxed after a five minute session.” – Melomind is a pair of headphones that will teach you how to relax
  • “The drink’s origin story is relatable, too. Baumann found himself where no one would ever want to be: Los Angeles International Airport. Baumann looked around and saw angry drivers and people stuck on lines to get on flying metal tubes. In the sea of stressed out travelers, this is when he apparently came up with the idea to develop a drink to keep people calm and focused.” – We Gave a Drink Designed to Help You Relax to Our Stressed-Out Staff. Here’s What We Thought.
  • “Watching one meet the hot end of a blowtorch is extremely satisfying for anyone who’s ever been forced to abandon the manual labour involved in eating one and for anyone who’s a fan of rainbow spectrums because they all come out here in soothing fashion.” – Watch: Melting a jawbreaker with a blow torch is oddly soothing and extremely satisfying.
  • “It’s the type of utilitarian work that might not directly lead to any scientific breakthroughs, but makes it possible for anyone to live there. This type of thing probably gets monotonous (indeed, Reddit is also chock full of horror stories about working at the South Pole) but this video makes it feel like magic.” – Chill Out To This Soothing South Pole Plowing Timelapse
  • “They say that rather than wonder how consciousness arises, one should look at where we know it exists and go from there to where else it might exist. They conclude that it is an inherent property of physical systems in which information moves around in a certain way — and that could include some kinds of artificial intelligence and even naturally occurring nonliving matter.” – Do Honeybees Feel? Scientists Are Entertaining the Idea

… and also in the news

Databases aren’t boring

It sounds super boring, sometimes scary. Let’s talk about database development, data management, and database administration. Sounds boring, right? I promise: it isn’t. I mainly develop for Fauxton, the UI for CouchDB we’ll release with 2.0. We are developing, designing, and concepting a UI for administration and data management.

When I tell fellow developers and designers that I develop a database, many of them look scared. Sometimes they also look bored, because people rarely imagine data management is exciting. Some of them might think of boring database courses in college. In this article we’ll discover what makes database development so interesting and exciting.

One of our main objectives is to make data management as frictionless as possible for the user. How can we lower the entry barrier for new users, but still support our power users? How can we display data in an accurate, detailed way, but still have a high density of information? How do we measure our success without traditional systems to measure engagement, like tracking? It is important to remember–we can be successful only if our users are successful.

A recent example where we want to make our users more successful is eventual consistency and MVCC. Large numbers of conflicts can be problematic; they will slow down the database and take up a lot of space. Some of the Fauxton developers recently had a hackweek. As part of one project we asked ourselves: “How can we make conflict detection and resolution a first class citizen in CouchDB and make it as frictionless as possible?”

Our goals:

  • Conflict detection should be as easy as possible
  • Make conflict resolution as easy as possible and provide necessary tooling
  • Help to avoid situations where a large number of conflicts become problematic
  • Provide better education and tutorials for conflict resolution, directly in the dashboard

We focused mainly on conflict resolution as our time was limited to one week. A document with conflicts has different revisions, and Couch elects one as the “winning revision.” How to choose the right revision and get rid of the other ones? Our project, codenamed “The Revision Browser,” was born. We wanted to provide a way to easily diff revisions, and inspect the revision tree. We also wanted an easy way to delete conflicting revisions and select other revisions as a winner. The first, ugly prototype had two dropdowns:

first-prototype

The first prototype

We are a distributed team, so use video calls for evaluating the iterations. We demo the current, incomplete work. Whenever possible, we test ad-hoc changes directly in the browser during the session. One addition that came up during our demos was to provide another view mode next to the “diff mode”. It shows both conflicting documents next to each other:

Both conflicting documents next to each other

Both conflicting documents next to each other

After the hackweek we had some work left to bring the project over the finish line. I am happy to announce that we have a minimum viable product now:

The diffing for both conflicting documents

The diffing for both conflicting documents

The feature was created in close collaboration with other developers and UX researchers. Here is a video showing the new features in action:

Data management is also interesting from the technical point of view. How can we display a lot of documents, but keep the application snappy? The revision browser is written in React. The code itself is pretty concise as we recently added ES 2015 / ES6 support to Fauxton. Thanks to our test coverage, we can refactor large parts of Fauxton. Recently, we changed the whole infrastructure underneath without much trouble. Interested in the code? It is available at: https://github.com/apache/couchdb-fauxton/pull/670

Conclusion

Despite its image, data management and database administration IS interesting. We face hard problems from a product point of view. They are challenging and it is fun to solve them in a team including developers, UX researchers, and designers. We also face interesting technical problems and solve them with the best technology available.

About the author

Robert Kowalski is a passionate software engineer and CouchDB contributor. He enjoys traveling and recently released a book about command line tools in Node.js, The CLI Book.