Return-Path: X-Original-To: apmail-couchdb-marketing-archive@minotaur.apache.org Delivered-To: apmail-couchdb-marketing-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1C45A18D9F for ; Fri, 22 Apr 2016 08:53:54 +0000 (UTC) Received: (qmail 22408 invoked by uid 500); 22 Apr 2016 08:53:54 -0000 Delivered-To: apmail-couchdb-marketing-archive@couchdb.apache.org Received: (qmail 22360 invoked by uid 500); 22 Apr 2016 08:53:54 -0000 Mailing-List: contact marketing-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: marketing@couchdb.apache.org Delivered-To: mailing list marketing@couchdb.apache.org Received: (qmail 22348 invoked by uid 99); 22 Apr 2016 08:53:54 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 22 Apr 2016 08:53:53 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 2F8C3C25C9 for ; Fri, 22 Apr 2016 08:53:53 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1 X-Spam-Level: * X-Spam-Status: No, score=1 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1] autolearn=disabled Received: from mx2-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id 6n4Q07KH75O6 for ; Fri, 22 Apr 2016 08:53:51 +0000 (UTC) Received: from nms02.nmmn.com (nms02.nmmn.com [188.94.27.146]) by mx2-lw-us.apache.org (ASF Mail Server at mx2-lw-us.apache.org) with ESMTPS id DDBE85F1D5 for ; Fri, 22 Apr 2016 08:53:50 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by nms02.nmmn.com (Postfix) with ESMTP id 9EB6F546DF2 for ; Fri, 22 Apr 2016 10:53:49 +0200 (CEST) Received: from nms02.nmmn.com ([127.0.0.1]) by localhost (nms02.nmmn.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id X0r8V0hN2ZqA for ; Fri, 22 Apr 2016 10:53:47 +0200 (CEST) Received: from [192.168.0.104] (ip1f11946f.dynamic.kabel-deutschland.de [31.17.148.111]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by nms02.nmmn.com (Postfix) with ESMTPSA id E8777546DF1 for ; Fri, 22 Apr 2016 10:53:46 +0200 (CEST) Content-Type: multipart/signed; boundary="Apple-Mail=_DE731669-8FA0-4596-947C-89F800252D0F"; protocol="application/pgp-signature"; micalg=pgp-sha256 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: Blogpost: "Databases aren't boring" X-Pgp-Agent: GPGMail 2.6b2 From: Andy Wenk In-Reply-To: <70076AE3-50A2-4B43-A0C3-7757BCDD91D1@apache.org> Date: Fri, 22 Apr 2016 10:53:46 +0200 Message-Id: <6DBD66FF-2F28-41AB-9DA9-84DF850BFDEF@apache.org> References: <75A2E329-7EF5-464A-AC72-A26F30A62679@apache.org> <70076AE3-50A2-4B43-A0C3-7757BCDD91D1@apache.org> To: marketing@couchdb.apache.org X-Mailer: Apple Mail (2.3124) --Apple-Mail=_DE731669-8FA0-4596-947C-89F800252D0F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Here is the preview: = https://couchdbblog.wordpress.com/?p=3D973&preview=3Dtrue Not sure if you can see it Robert. Please someone else have a quick = check. We can post it then? The question is when? All the best Andy -- Andy Wenk Hamburg - Germany RockIt! GPG public key: = https://pgp.mit.edu/pks/lookup?op=3Dget&search=3D0x4F1D0C59BC90917D > On 22 Apr 2016, at 10:47, Andy Wenk wrote: >=20 > I am creating a draft at the moment =E2=80=A6 will be back in 30 = Minutes with a link >=20 > Cheers >=20 > Andy > -- > Andy Wenk > Hamburg - Germany > RockIt! >=20 > GPG public key: = https://pgp.mit.edu/pks/lookup?op=3Dget&search=3D0x4F1D0C59BC90917D >=20 >=20 >=20 >=20 >> On 22 Apr 2016, at 04:32, Robert Kowalski wrote: >>=20 >> forgot to add the images: >>=20 >> = 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 >>=20 >> On Fri, Apr 22, 2016 at 12:10 AM, Robert Kowalski = wrote: >>=20 >>> Hey there! >>>=20 >>> Here is the latest version, thanks to the awesome help of Jenn! >>>=20 >>> 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). >>>=20 >>> Thank you, >>> Robert >>>=20 >>>=20 >>> Original video: >>>=20 >>> https://dl.dropboxusercontent.com/u/1809262/rev-browse.mov >>>=20 >>> gif: = https://dl.dropboxusercontent.com/u/1809262/revision-browser.gif >>>=20 >>> Article: >>>=20 >>> --- >>>=20 >>> # Databases aren=E2=80=99t boring >>>=20 >>> It sounds super boring, sometimes scary. Let=E2=80=99s talk about = database >>> development, data management, and database administration. Sounds = boring, >>> right? I promise: it isn=E2=80=99t. I mainly develop for [Fauxton]( >>> https://github.com/apache/couchdb-fauxton), the UI for CouchDB = we=E2=80=99ll >>> release with 2.0. We are developing, designing, and concepting a UI = for >>> administration and data management. >>>=20 >>> 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=E2=80=99ll = discover what >>> makes database development so interesting and exciting. >>>=20 >>> 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. >>>=20 >>> 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: =E2=80=9CHow can we make = conflict detection >>> and resolution a first class citizen in CouchDB and make it as = frictionless >>> as possible?=E2=80=9D >>>=20 >>> Our goals: >>>=20 >>> - 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 >>>=20 >>> 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 =E2=80=9Cwinning revision.=E2=80=9D How to choose the = right revision and get rid >>> of the other ones? Our project, codenamed =E2=80=9CThe Revision = Browser,=E2=80=9D 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: >>>=20 >>> ![The first prototype](first-prototype.png) >>>=20 >>> 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 =E2=80=9Cdiff mode=E2=80=9D. It shows both conflicting = documents next to each >>> other: >>>=20 >>> ![Both conflicting documents next to each other](1-to-1.png) >>>=20 >>> 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: >>>=20 >>> ![The diffing for both conflicting documents](diff.png) >>>=20 >>> 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=3D3G8d7PzMVsk): >>>=20 >>>=20 >>>=20 >>> >>>=20 >>>=20 >>> Data management is also interesting from the technical point of = view. How >>> can we display a lot of documents, but keep the application snappy? >>>=20 >>> 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 >>>=20 >>>=20 >>>=20 >>> ## Conclusion >>>=20 >>>=20 >>> 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. >>>=20 >>>=20 >>> ## About the author >>>=20 >>> 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). >>>=20 >>>=20 >>>=20 >>> On Thu, Apr 21, 2016 at 12:50 AM, Robert Kowalski = wrote: >>>=20 >>>> 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 >>>>=20 >>>> On Thu, Apr 21, 2016 at 12:48 AM, Robert Kowalski >>>> wrote: >>>>=20 >>>>> here is the gif: >>>>> https://dl.dropboxusercontent.com/u/1809262/revision-browser.gif >>>>>=20 >>>>> On Tue, Apr 19, 2016 at 8:56 PM, Jan Lehnardt = wrote: >>>>>=20 >>>>>> ooooh, I really like this, the feature and the writeup! Thanks = for >>>>>> offering to post >>>>>> it on the CouchDB blog. I=E2=80=99d be very much in favour! >>>>>>=20 >>>>>> I=E2=80=99d 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. >>>>>>=20 >>>>>> 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). >>>>>>=20 >>>>>> Great job! :) >>>>>>=20 >>>>>> Best >>>>>> Jan >>>>>> -- >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>> On 19 Apr 2016, at 19:39, Robert Kowalski = wrote: >>>>>>>=20 >>>>>>> Hi there, >>>>>>>=20 >>>>>>> I went into a hip cafe this weekend, drank espressi and wrote a >>>>>> blogpost! >>>>>>>=20 >>>>>>> The draft is at >>>>>>>=20 >>>>>> = https://github.com/robertkowalski/couch-labs/blob/blog/blog/databases-are-= not-boring/databases-are-not-boring.md >>>>>>>=20 >>>>>>> If you want we can publish it on the CouchDB blog, but I am also = happy >>>>>>> to publish it somewhere else. >>>>>>>=20 >>>>>>> btw.: seems GitHub does not support embedded videos in markdown, = so I >>>>>>> linked it for the draft. >>>>>>=20 >>>>>> -- >>>>>> Professional Support for Apache CouchDB: >>>>>> https://neighbourhood.ie/couchdb-support/ >>>>>>=20 >>>>>>=20 >>>>>=20 >>>>=20 >>>=20 >=20 --Apple-Mail=_DE731669-8FA0-4596-947C-89F800252D0F Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJXGeaaAAoJELZda+Oe05WIUS8P/1TXHyKBIY9zlSESJ6UVVmUm iFcMB1a7iT+tjZz22CRiGEqWNBNDiwajqATWiSrCZIKwp7N/G2E9Opz592N1hjv8 LFRj5zTwWSn4Qps+U9zK8TVXL6D2cW80RbJR7+Kr2/a8eIE3qJ/kdBUZCHmAWmNv XxLXezvHEoYIlccoIKRK9jI1t9BDpLNLA0S7vdLMkN0jKVeoQNEc2qfwJaVeLsmV 9DIjB4yzBVYveBDGjyCaUxesA1gly5EabU46XgRH997MTNyfQUfSqG7zYz4Lg/o0 sWrBJtUFKxM0lF3YrTOQm/yNI1OAX52N9e0mm7I5drRcxvqX4C05YOAt04A7yGbM FZO1tfHxHVRekzpu6KPTJQrl2tzUoD4f0ZnulGcS6sBkwCmPDfMJbXip3u3gIHQu s5u22sGNMf3avGBvFeelq/Q1D2Wh59o4RNz4itDcWw/MrXDvG6kvHfx1SvjRqHFN MTN6vumNyrxTW0FwzeKCPNCFsQrBROXPl8L+G5/isZegegOGH1S31Y26wR+BpdIV Wx2bcUuAU1QXq3YxyrL/9rz7P1o2bNwtyLlV+/kt/6IFAIZTlQm62GZQgpZ6WD35 UYLzObdPVbLiOQCjnvzLzQAGEx16COr7dYYLcTzHqaW1eYPeF/8kht6v+SeYGoxS Bs5Iwt9ah/A66hoAJG4s =fLaQ -----END PGP SIGNATURE----- --Apple-Mail=_DE731669-8FA0-4596-947C-89F800252D0F--