couchdb-marketing mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andy Wenk <andyw...@apache.org>
Subject Re: Blogpost: "Databases aren't boring"
Date Fri, 22 Apr 2016 08:47:50 GMT
I am creating a draft at the moment … will be back in 30 Minutes with a link

Cheers

Andy
--
Andy Wenk
Hamburg - Germany
RockIt!

GPG public key: https://pgp.mit.edu/pks/lookup?op=get&search=0x4F1D0C59BC90917D




> On 22 Apr 2016, at 04:32, Robert Kowalski <rok@kowalski.gd> wrote:
> 
> forgot to add the images:
> 
> https://github.com/robertkowalski/couch-labs/blob/blog/blog/databases-are-not-boring/1-to-1.png
> https://github.com/robertkowalski/couch-labs/blob/blog/blog/databases-are-not-boring/diff.png
> https://github.com/robertkowalski/couch-labs/blob/blog/blog/databases-are-not-boring/first-prototype.png
> 
> On Fri, Apr 22, 2016 at 12:10 AM, Robert Kowalski <rok@kowalski.gd> wrote:
> 
>> Hey there!
>> 
>> Here is the latest version, thanks to the awesome help of Jenn!
>> 
>> I am leaving for Cuba in 6 hours, it would be cool if someone could
>> publish it. The feature is already merged. Please decide how you want to
>> handle the video (embedded youtube, gif or something else).
>> 
>> Thank you,
>> Robert
>> 
>> 
>> Original video:
>> 
>> https://dl.dropboxusercontent.com/u/1809262/rev-browse.mov
>> 
>> gif: https://dl.dropboxusercontent.com/u/1809262/revision-browser.gif
>> 
>> Article:
>> 
>> ---
>> 
>> # 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](
>> https://github.com/apache/couchdb-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](
>> http://guide.couchdb.org/draft/consistency.html). 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:
>> 
>> ![The first prototype](first-prototype.png)
>> 
>> 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](1-to-1.png)
>> 
>> 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](diff.png)
>> 
>> The feature was created in close collaboration with other developers and
>> UX researchers. [Here is a video showing the new features in action](
>> https://www.youtube.com/watch?v=3G8d7PzMVsk):
>> 
>> 
>> 
>> <iframe width="420" height="315" src="
>> https://www.youtube.com/embed/3G8d7PzMVsk" frameborder="0"
>> allowfullscreen></iframe>
>> 
>> 
>> 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](http://theclibook.com).
>> 
>> 
>> 
>> On Thu, Apr 21, 2016 at 12:50 AM, Robert Kowalski <rok@kowalski.gd> wrote:
>> 
>>> here is the original source of the video (maybe to create better gifs i
>>> my does not suffice?):
>>> https://dl.dropboxusercontent.com/u/1809262/rev-browse.mov
>>> 
>>> On Thu, Apr 21, 2016 at 12:48 AM, Robert Kowalski <rok@kowalski.gd>
>>> wrote:
>>> 
>>>> here is the gif:
>>>> https://dl.dropboxusercontent.com/u/1809262/revision-browser.gif
>>>> 
>>>> On Tue, Apr 19, 2016 at 8:56 PM, Jan Lehnardt <jan@apache.org> wrote:
>>>> 
>>>>> ooooh, I really like this, the feature and the writeup! Thanks for
>>>>> offering to post
>>>>> it on the CouchDB blog. I’d be very much in favour!
>>>>> 
>>>>> I’d suggest we put this in a google doc and give it an editorial
>>>>> once-over (looking at Jenn with puppy-eyes ^^), but then this is ready
to
>>>>> go.
>>>>> 
>>>>> The video could maybe be a gif, so we can tweet/share it more easily,
>>>>> if you are up for converting it (or anyone, really).
>>>>> 
>>>>> Great job! :)
>>>>> 
>>>>> Best
>>>>> Jan
>>>>> --
>>>>> 
>>>>> 
>>>>> 
>>>>>> On 19 Apr 2016, at 19:39, Robert Kowalski <rok@kowalski.gd>
wrote:
>>>>>> 
>>>>>> Hi there,
>>>>>> 
>>>>>> I went into a hip cafe this weekend, drank espressi and wrote a
>>>>> blogpost!
>>>>>> 
>>>>>> The draft is at
>>>>>> 
>>>>> https://github.com/robertkowalski/couch-labs/blob/blog/blog/databases-are-not-boring/databases-are-not-boring.md
>>>>>> 
>>>>>> If you want we can publish it on the CouchDB blog, but I am also
happy
>>>>>> to publish it somewhere else.
>>>>>> 
>>>>>> btw.: seems GitHub does not support embedded videos in markdown,
so I
>>>>>> linked it for the draft.
>>>>> 
>>>>> --
>>>>> Professional Support for Apache CouchDB:
>>>>> https://neighbourhood.ie/couchdb-support/
>>>>> 
>>>>> 
>>>> 
>>> 
>> 


Mime
View raw message