Planet CouchDB

April 17, 2015

The Offical CouchDB Blog

CouchDB Weekly News, April 17, 2015

CouchDB Weekly Meeting (see summary)

  • CouchDB 2.0 status: work is making progress. There’s still a list of missing steps and blockers – any help with is always extremely welcome!
  • CouchDB Logo vote: the vote is ongoing
  • Google Summer of Code (GSoC): discussions with GSoC participants
  • Other topics: see summary

Major Discussions

[VOTE] CouchDB Logo – Round #3 (ongoing, SEE THREAD)

The third round to vote on the CouchDB logo is still ongoing. The options to vote for are:

Please send your votes (+1 / 0 / -1) for each proposed candidate, so we can get an impression of which one(s) the community members like and which they don’t. The vote is open for non-committers as well.

Can replication be setup between different CouchDB versions? (see thread)

Question: A user asked if it’s possible to setup replication between different CouchDB versions, e.g. 1.2 and 1.6?

Answer: yes, it’s possible. It wouldn’t need special operations or setup to let it work from the start. Compaction of databases and views wouldn’t harm though, and would ensure that all the new format features are being applied.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

no public answer yet:

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

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!

  • “There is no reason to be depressed or give up simply because you will make a few wrong choices. Even more crucial, you must try your best every time because it is the effort and the practice that drives the learning process. They are essential, even if you fail.” – Your first choice is rarely the optimal choice: 5 lessons on being wrong
  • “How many times do we have to tell these stories before they become real — before we all agree that this is a problem, and more than that, agree to do something about it?” – Beyond Storytelling: Actionable Ways to Help with Tech’s “Woman Problem”
  • “Developing multiple areas of knowledge in a limited line of work doesn’t make you a polymath – it just makes you a different kind of employee.” – The Full-Stack Employee and The Glorification of Generalization
  • “If you are a man, you are part of rape culture. I know … that sounds rough. You’re not a rapist, necessarily. But you do perpetuate the attitudes and behaviors commonly referred to as rape culture. You may be thinking, ‘Now, hold up, Zaron! You don’t know me, homey! I’ll be damned if I’m gonna let you say I’m some sorta fan of rape. That’s not me, man!’ I totally know how you feel. That was pretty much exactly my response when someone told me I was a part of rape culture.” – A Gentlemen’s Guide To Rape Culture

… and also in the news

  • “jeez, just replicated a couchDB to a pouchDB for the 1st time. what a breeeeeeeeze.” (@fabianmu, on Twitter)

Filed under: News

by Lena Reinhard at April 17, 2015 03:09 PM

April 08, 2015

The Offical CouchDB Blog

CouchDB Weekly News, April 08, 2015

Major Discussions

[VOTE] CouchDB Logo – Round #3 (ongoing, SEE THREAD)

A third round to vote on the CouchDB logo was just started. The options to vote for are:

Please send your votes (+1 / 0 / -1) for each proposed candidate, so we can get an impression of which one(s) the community members like and which they don’t. The vote is open for non-committers as well.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

no public answer yet:

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

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
  • 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!

  • “[E]xpectations for decision-making have gone from “get it done soon” to “get it done now” to “it should have been done yesterday,” we tend to jump to conclusions instead of asking more questions. And the unfortunate side effect of not asking enough questions is poor decision-making. That’s why it’s imperative that we slow down and take the time to ask more — and better — questions.” – Relearning the Art of asking Questions
  • “Why were programmers hiring for ninjas, espousing meditation, and writing “koans?” Why were these faux-Asian aspirations so widespread?” – Damaged Karma: Commoditization and Exploitation of Asians in Tech
  • “I see people writing about ‘callout culture’ a lot, and while a lot of digital ink seems to be spilled on scrutinising the behaviour of people who do the calling out, very little seems to get said about ways to constructively react when you are the recipient of a callout.” – So You’ve Been Called Out: A Handy Guide to Receiving Social Justice-Related Criticism on the Internet

… and also in the news


Filed under: News

by Lena Reinhard at April 08, 2015 07:00 PM

April 02, 2015

The Offical CouchDB Blog

CouchDB Weekly News, April 02, 2015

Major Discussions

Notice: Submissions for the new CouchDB logo are open (SEE THREAD)

As announced, there will be a vote for a new logo for CouchDB soon. All submissions so far, minus the ones that resulted in a 404, are listed below. If a link is missing, please submit it to the thread.

A vote on the new logo will be started soon. If you are a fan of the old logo, don’t worry, since it will also be part of the vote.

Vote: Accept couchperuser codebase (SEE THREAD)

The vote passed.

Announcement: jqouch, a jq-based view server (SEE THREAD)

Release of jqouch, a jq-based view server for CouchDB. It’s extremely
rudimentary, but works as a proof of concept of what can be achieved. Some background information on jqouch can be found here.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

no public answer yet:

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

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
  • 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!

Job opportunities for people with CouchDB skills

Time to relax!

  • “For a moment over the last month, we jumped out of our water and thought very critically about the environment within which we swim. More and more women and men are starting to “lean in” and take responsibility for changing the waters.” – A Fish is the last to discover Water
  • “I hate running, but a few times a year I decide to be a runner. I update my cardio playlist, stretch my legs, and tell myself it’s going to be fun this time. And it is, for the first few minutes. Then at some point around mile three, I have to stop and walk. I turn into a sweaty, grunty, red-faced monster. An angry tomato in running shoes, floundering down the sidewalk.” – Enjoy the Walk
  • “While gaming and the larger tech industry intersect and overlap in many ways, much of tech’s infrastructure, power and financial centers, and culture operate distinctly from the machinations of the gaming industry, and most of tech has been able to ignore the spread of GamerGate to date.” – GamerGate’s Next Target Is The Tech Industry: Are We Ready?
  • “Working for a big business the word process can easily come up a dozen times in any given conversation. Depending on the individual you are speaking to it can come up multiple times in a single sentence. This is one of those words that is so overused that it begins to loose all meaning. The problem is that just saying you need process isn’t enough to solve your problem.”
  • “Mansplaining (verb, gerund) describes the phenomenon of someone (usually a man, but not always) behaving as though he has superior knowledge to someone else (often a woman) who actually knows more about the topic in question than he does.” – Beyond Mansplaining: A New Lexicon of Misogynist Trolling Behaviors

… and also in the news


Filed under: News

by Lena Reinhard at April 02, 2015 07:52 PM

March 26, 2015

The Offical CouchDB Blog

CouchDB Weekly News, March 26, 2015

Major Discussions

GitHub Pull Requests merging policy (SEE THREAD)

Ongoing discussion of approaches and processes for merging Pull Requests on GitHub.

Vote: Import docker-couchdb (SEE THREAD)

The vote passed.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

  • py-couchdb project is looking for a new maintainer. If someone is interested and would like to help, please contact Andrey Antukh (see contact details in this email).

Use Cases, Questions and Answers

no public answer yet:

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

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
  • 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!

Job opportunities for people with CouchDB skills

Time to relax!

  • “As the 120-ton space shuttle sits surrounded by almost 4 million pounds of rocket fuel, exhaling noxious fumes, visibly impatient to defy gravity, its on-board computers take command. Four identical machines, running identical software, pull information from thousands of sensors, make hundreds of milli-second decisions, vote on every decision, check with each other 250 times a second. A fifth computer, with different software, stands by to take control should the other four malfunction.” – Space Shuttle Software: They write the right stuff
  • “Problems around this issue are not going to vanish overnight, but it’s clear that women won’t advance to top jobs until they can speak forcefully without being seen as incompetent, blabby nags. And without always having to second-guess their own actions in a way that men just don’t have to do.” – What happens when women speak up
  • “If you ask someone specifically to consider speaking at your conference, they’re WAY more likely to consider submitting a talk than if you don’t.” – You can choose who submits talks to your conference
  • “Being a low-budget community event, we didn’t have a lot of money. But we tried to show our attendees and speakers that we care about them. Here’s what we did and what it cost us.” – How much it cost us to make more attendees feel safe and welcome at .concat() 2015

… and also in the news


Filed under: News

by Lena Reinhard at March 26, 2015 06:54 PM

March 19, 2015

The Offical CouchDB Blog

The CouchDB Weekly News, March 19, 2015

CouchDB Weekly Meeting (see summary)

  • Fauxton status: Fauxton test suite for integration tests will be running on CouchDB 2.0 soon, a PR is already in review. For the Mango interface this means that integration tests can be written for it. In Mango, you can currently create indexes and list them, and work on rewriting the all-docs-list to react is currently ongoing as well.
  • rcouch merge: some work is already done, further work is currently on hold.
  • couchperuser: couchperuser may get donated to the ASF, a clearance and vote will be done to move this forward.
  • Google Summer of Code (GSoC): anyone who wants to mentor, please get in touch on the according thread.
  • couchdb-www: the infra team is currently testing git-based website publishing. I we now want to make any changes on the CouchDB Website now, we have to do it in SVN and git, but only for a short while, until we’re moved over fully
  • couchdbdocker: this project is also being imported from Github, paperwork has been filed, next step will be to get IP clearance going.
  • couchdb-nano: paperwork has been filed as well, the import process will start soon
  • _bulk_revs: discussion about optimising replication performance using _bulk_revs / COUCHDB-2310
  • CouchDB 2.0: a text about the process for the new logo will be written, and consolidation of install instructions will be figured out by community members.

Major Discussions

Vote: Import docker-couchdb (SEE THREAD)

Formal vote on accepting the donation of the docker-couchdb project to CouchDB. The vote is still ongoing.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

no public answer yet:

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

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!
  • 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

Time to relax!

  • “Bengali is the seventh most common native language in the world, sitting ahead of the eighth (Russian) by a wide margin, with as many native speakers as French, German, and Italian combined. And yet, on the Internet, Bengali is very much a second-class citizen … .” – I Can Text You A Pile of Poo, But I Can’t Write My Name
  • “My primary lesson from the dark days of burnout is to be honest and transparent, even if you fear that people will find out the awful truth. Sometimes you have to accept that you aren’t as good as you think you are, that you’re a fool for thinking you could blithely avoid burnout by sheer will.” – On Burnout and the Year of Hell

… and also in the news


Filed under: News

by Lena Reinhard at March 19, 2015 07:52 PM

March 10, 2015

The Offical CouchDB Blog

CouchDB Weekly News, March 10, 2015

CouchDB Weekly Meeting (see summary)

  • Fauxton update: the team is currently working on a Mango interface in Fauxton
  • CouchDB logo discussion: a page will be created where all existing logo proposals are comparable and votable
  • CouchDB 2.0: list of blockers is here, and help is needed with testing this PR on your machine and writing feedback into the PR. Recently, an initial draft of the docs for 2.0 has been sent to the mailing list, feedback to this thread is very welcome as well.
  • Work on new website: information will be collected on the new website mailing list (www@couchdb.apache.org).

Major Discussions

CouchDB & Google Summer of Code: request for projects (SEE THREAD)

CouchDB takes part in this Google Summer of Code and they are searching for nice project ideas until the end of next week. If you have an idea for a project, just reply to this thread or create a Jira ticket and add the tag gsoc to it.

Releases in the CouchDB Universe

Use Cases, Questions and Answers

no public answer yet:

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

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!
  • 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 have you on board!

New Committer

  • Michelle Phung (Apache ID: michellep; IRC nick: michellep) has been elected as a CouchDB committer. Welcome to CouchDB, Michelle!

Events

Time to relax!

  • “I know that the majority of companies truly want to create a more diverse workforce, but I don’t think they know how to ensure that minority candidates like me have a fighting chance to pass their interview process.” – Trying to hire a diverse team of engineers? It’s not just a pipeline issue
  • “One category of reactions that I receive all the time as a programmer that presents as feminine is: No one believes I am a programmer. I can’t tell you how many people, when meeting me and hearing my profession, tell me that I look like a designer, someone in accounting, someone in marketing, anything but a programmer.”Coding like a girl

… and also in the news


Filed under: News

by Lena Reinhard at March 10, 2015 05:19 PM

March 03, 2015

The Offical CouchDB Blog

CouchDB Weekly News, March 03, 2015

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

no public answer yet:

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

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!
  • 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 have you on board!

New Committer

  • Kyle Joseph Snavely (IRC nick: ksnavely; Apache ID: ksnavely; Twitter: motohacker) has been elected as a CouchDB committer. Welcome to CouchDB!

Events

Job opportunities for people with CouchDB skills

Time to relax!

… and also in the news


Filed under: News

by Lena Reinhard at March 03, 2015 05:54 PM

February 25, 2015

The Offical CouchDB Blog

How to Organise Your Own CouchDB Day (it’s easy)

This post originally appeared on http://robert-kowalski.de/blog/how-to-organize-an-event/ and was written by CouchDB Committer Robert Kowalski. We are re-posting it here with his permission. See the recap to see how well it went.

Andy and I recently organized the first CouchDB Day in Hamburg. Having more CouchDB Days would be quite awesome, but Andy and me work as volunteers in our spare time and we don’t scale that much :) – same for the JS Unconf that I am organizing. In this post I want to share some insights regarding the organization of events. In general this guide is not limited to CouchDB or JavaScript – you can switch it with every other Open Source project or topics related to IT.

Organizing a (un)conference is much work, but it is also a lot of fun and a rewarding experience.

Decide on team size

A smaller team means faster decisions but sharing of tasks is limited. I suggest that you are at least 2 persons, as you can help each other and I think you get a better event as you both are taking care and have ideas. Having a larger team means sometimes much more time for finding a solution where everybody agrees on, but you can share more tasks over an amount of people.

Event length & expected amount of attendees

We decided to have the CouchDB Day for one day. Food and location are always the biggest expenses. That means if you decide on having a two day conference instead of one day, you will almost double your expenses.

That means the count of attendees and the length of the event directly relates to your costs (and the amount of sponsors you will need).

Examples:

CouchDB Day: 100 attendees 1 day   6.000€
JS Unconf:   300 attendees 2 days 40.000€

Choose a ticket price

If you decide on taking a small amount of money for the event you will decrease the no-show-rate. I also organize JS Unconf and the tickets cost 42-120€ for two days, including food and parties. This is quite cheap (just covering a very small part of the expenses) but the fact that you have to “buy” the ticket leads to many folks showing up even if it is raining outside.

Fun fact: after talking to other conference organizers which have ticket prices at 300-1.200€ it seems the price does not really matter. As long as the attendees pay something the no-show-rate is usually 15% and it does not matter if the ticket costs 1.000€ or 42€.

For our free event we had a 30% rate – we lowered the rate a bit by sending emails before the event to all attendees asking them to cancel their ticket if they can’t make it to the day.

Food

Make sure to ask attendees when buying their ticket if they have dietary requirements. The CouchDB Day had almost 50% vegetarians and vegans! Asking for it when they get the ticket makes it easier for you to plan the ratio of food needed.

As I just spend money I already got from sponsors food is the second thing after the location that I am trying to buy. It is also the most expensive part of the event.

If you have bad luck and can’t afford food it’s also no problem, but the location should be next to some restaurants.

Take care of diversity and a CoC

For JS Unconf 2015 and CouchDB Day we have a budget for diversity tickets. 100-150€ for travel plus a free ticket is a good amount to enable people that could not afford otherwise to join the event.

Please also take care of a Code of Conduct. It shouldn’t be just a link on your website, I suggest that you also mention it at the beginning of the event in your moderation and give a short explanation. Conferences should be a safe space for everyone.

You should also wear event T-Shirts that makes it easy for attendees to spot you in the crowd if they need help or have questions, you can also announce that in the beginning.

Get sponsors

You will need sponsors for the event. The deal for the CouchDB Day was:

* Banner with link on our website at http://day.couchdb.org/
* place for a Rollout-Banner at the event day
* A table for offering, t-shirts, info material and goodies
* your logo on the sponsor slide

1.000€ + VAT (19%)

For a one day event in Germany a budget of 6000€ is a good indicator, but it depends on your needs. We started with one-two sponsors and as we got more sponsors, we added more features to the event (like food, a photographer etc.).

I strictly just spent money that we already had in the past years and had good experiences with it. Sometimes it can happen that you are not able to spend all the money as you don’t have enough time before the event (e.g. last minute sponsoring one week before the event) – but you still can keep the money for next year. If there is no following event you can donate the money to organizations like the Ada Initiative.

Party

If you have money left, having a party in the evening is cool!

Organizing the party is easy, but there are a few things you should take care of: many attendees are not drinking alcohol at all, you should definitely offer softdrinks if you are offering beer for free. If you are also offering cocktails it is nice to have free non-alcoholic cocktails, too.

We usually have the party in a bar not too far away from the event-location.

I had bad experiences with vouchers for drinks in the past years, you have to take care everyone gets an amount of vouchers – and additionally as there is also a no-show rate at the party or some are leaving early it seems that you are often paying 500€ for vouchers, but just a few are used. It seems to me that it is easier to pay a specific amount to a bar and the attendees just show their badge for a free drink.

For a party after an event which has 100 during the day you can get pretty far with 500€ in the evening, depending on the price for a beer or softdrink. JS Unconf – which has 300 attendees and happens on Saturday and Sunday – has a budget of 500€ on Friday for our Warmup Party and 1.500€ for the main party on Saturday. Of course it is also possible to spend 1000€ with just 30-40 persons that are attending the party.

Add nice extras

If there is money left, spending it for a photographer is a good idea. Creating a Moodfilm which captures the atmosphere of the event is also nice if you have some money left. Both will help you and the attendees to remember how cool your event was.

For events regarding Open Source projects: contact the maintainers

Many Open Source projects have a trademark: CouchDB, Node.js and npm are all trademarked. Please contact the maintainers and explain your event to them. For CouchDB we contacted the CouchDB PMC with the initial idea and shared our logo designs. We got some nice tips from the PMC regarding our event, they even got a small guideline page for events!

You probably want some kind of insurance for your attendees. At least in Germany it is a good idea to have an insurance that will pay if bad things happen, like a lamp is falling down on an attendee. It costs around 150-300€ for 100-400 attendees.

As you are earning money and spending money you will need to think about your tax requirements. Can a company you are friends with help you regarding that? Are you organizing a lot of events and creating a foundation makes sense for you?

Conclusion

Organizing an event is a lot of work but it is not that hard! If you are organizing an event you can talk to other organizers and ask questions and share experiences.

I would be really happy if we see a CouchDB Day or JS Unconf in other parts of the world!


Filed under: News

by janlehn at February 25, 2015 03:51 PM

February 24, 2015

The Offical CouchDB Blog

CouchDB Weekly News, February 24, 2015

CouchDB Weekly Meeting (see summary)

  • CouchDB Day Hamburg: photos from the event will be shared on Flickr (update after the meeting: the photos can be found here)
  • Packaging CouchDB 2.0: the first PR for creating a CouchDB 2.0 tarball is up here, feedback is very welcome (especially for different platforms)
  • Remaining CouchDB 2.0 tasks: document with missing items is here, missing tasks and blockers will be added to Jira
  • Moving the “website group” and CouchDB Website to git
  • nano contribution to the Apache Software Foundation: community members will look into the code, volunteer on the Contributors Licensing Agreement signing process

Major Discussions

The latest CouchDB Report (SEE THREAD)

You can find the latest report on CouchDB here.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

no public answer yet:

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

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!
  • 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 have you on board!

New Committer

  • Eric Avdey (IRC nick: eiri; Apache ID: eiri) has been elected as a CouchDB committer. Welcome to CouchDB, Eric!
  • Welcome as well to Tony Sun (IRC nick: tonysun83; Apache ID: tonysun83; Twitter: TonyS0427), who has been elected as a CouchDB committer last week. Welcome on board!

Events

Time to relax!

  • “I felt that same beautiful freedom writing code that I knew and loved from skating. Compared with what skate culture had become, everything about tech felt fresh and possible. Where skateboarding now celebrated destruction, computer culture celebrated creation.” – Silicon Valley Could Learn a Lot From Skater Culture. Just Not How to Be a Meritocracy
  • “We all want to do something or be something and have it be okay with everyone. We talk about how we don’t care what people think, but what we really mean is that we only care what the people we care about think. We care about potential buyers/clients. We care about our family, friends, people we meet on the street or interact with online.” – Mary Cassatt
  • “Craft comes from learning the lessons and building new ways of doing things from experience and iteration. Craft is something we can teach the ones coming behind us. And by teaching craft to the next generation, we pay back those who came alongside us when we were young. And it can be as simple as passing an idea on.”On being generous
  • “In 2011, after 15 years, she left before achieving a management position.” – Women are leaving the tech industry in droves
  • “We’re happy to tell people to disable security features in order to install third-party software. We’re happy to tell people to download and build source code without providing any meaningful way to verify that it hasn’t been tampered with. Install methods for popular utilities often still start “curl | sudo bash”. This isn’t good enough.” – It has been 0 days since the last significant security failure. It always will be.

… and also in the news

  • “CouchDB is always my favourite example of a great REST implementation” (@CodeStars, on Twitter)
  • “Teaching myself Node.js, AngularJS, CouchDB, tied together with Yeoman. This is pretty awesome.” (@jimmywim, on Twitter)

Filed under: News

by Lena Reinhard at February 24, 2015 02:11 PM

CouchDB Day 2015 recap

On February 7th, the first CouchDB Day took place in the nice city of Hamburg, Germany. It was a blast! This blog post is a recap of the Day and will report about what happened.

But first of all, we would like to share some impressions with you. We were lucky enough to have a film team at the event and we are super excited to present the first CouchDB Day Mood Film.

<iframe allowfullscreen="true" class="youtube-player" frameborder="0" height="326" src="http://www.youtube.com/embed/pjv5M4YyLrA?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent" type="text/html" width="525"></iframe>

The Day before

As this was the first CouchDB Day, Robert and me took extra care of everything in advance. At least we think we did. So the day before the event, we met with Holger Blank, Klaus Trainer and Sebastian Rothbucher to set up everything in the location. Thanks again to Holger and SinnerSchrader for hosting us. We couldn’t have imagined a better place. You rock! :)

We had a main room with a capacity for approx. 120 people – the amount of attendees we expected. Furthermore, there was a lounge where we decided to serve breakfast and lunch.And we had two more conference rooms. The main room is that big so that we divided it into two rooms. So if counting correctly, we had four rooms for hacking, speaking or simply hanging around. Each with a projector for sure.

Preparing everything was quite easy because my former fine colleague Daniel Goos form SinnerSchrader had already setup the audio stuff and the fridge for drinks was filled ;-). So nothing stopped us from looking forward to the next morning. But we shall not forget to check out the party location and the beer they served there. That’s we did as our last task at this day.

The Day

We arrived at 08:00 in the morning. Pretty early for a Saturday but looking forward to an awesome event saved us from complaining about the time.

And believe it or not. There had already been some attendees waiting to get in. Cool start.

We opened doors at 08:30 and the people came in time. Awesome. The mega cool two by two Espresso machine started to roar. Everything was fine.

At 09:00 Robert and me gave the introduction and welcomed everybody. The first impression was a blast. With ~100 people attending, our “no show” rate was low. Perfect.

CouchDB Day 2015 Intro

Introduction by Robert and Andy

After some info and proposals how we thought to run the day, it was our pleasure to welcome Jan Lehnardt as our keynote speaker.

<iframe allowfullscreen="true" class="youtube-player" frameborder="0" height="326" src="http://www.youtube.com/embed/cbVXHpSCgb8?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent" type="text/html" width="525"></iframe>

Hacking, talking, presenting

It was extremely cool to see, that many groups had been formed after a quick “find my interest”. There was an introduction to Erlang by Robert Newson, an introduction to Hoodie by Ola Gasidlo and Sven Lito and an introduction to Fauxton by Sebastian Rothbucher and Robert Kowalski for example.

Robert Newson showing Erlang

Bob showing Erlang

Sebastian showing Fauxton

Sebastian showing Fauxton

Ola and Sven showing Hoodie

Ola and Sven showing Hoodie

But a lot more groups sat together and discussed or hacked. This was, for us as the organisers, exactly what we were looking forward to. So at this point of the day: mission accomplished.

Talks

As our idea was that all attendees work on and with CouchDB, we decided to have only three talks. After lunch, we were extremely happy to hear and see a live introduction to CouchDB 2.0 by Klaus Trainer.

<iframe allowfullscreen="true" class="youtube-player" frameborder="0" height="326" src="http://www.youtube.com/embed/C1FFMedIemY?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent" type="text/html" width="525"></iframe>

And directly after Klaus, we saw Frank Mecklenburg with his talk How to replicate the Internet into your browser and a short Q&A.

<iframe allowfullscreen="true" class="youtube-player" frameborder="0" height="326" src="http://www.youtube.com/embed/V7mC1eoaRI0?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent" type="text/html" width="525"></iframe>

This was perfect after a well received and yummy lunch provided by Schanzenstern Hamburg.

After these talks the attendees went back to form different groups and worked on various other things. Again – Cool!

At around 16:00 we served various cake and stressed the two by two Espresso machine again. It was delicious and extra sugar motivated everybody.

We recognised, that the time period between the lunch talks and the last talk was a bit long. Maybe everyone ate too much because it was that good ;-). So to not stress everybody’s mood, we asked Ólafur Arason if he would start 30 minutes earlier with his talk Reusing CouchDB cookies for token based urls. And so he did.

<iframe allowfullscreen="true" class="youtube-player" frameborder="0" height="326" src="http://www.youtube.com/embed/5DqBYsvoD9M?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent" type="text/html" width="525"></iframe>

Outro and Party

Well, after one more Q&A for Ólafur’s talk, we came to the end of the day. Robert and I were extremely happy that everything went that well and obviously everybody was happy with the day. So the last thing we had to ask the attendees is to wait a bit for a family photo and show them the way to the next whisky bar … aka the CouchDB Day party.

Party

The party location was a bar in Altona called Laundrette. Funny fact: you can bring your laundry and wash it there ;-). The party was super awesome and the budget we had (and some extra ;-) ) was enough to make everyone happy. It was again a full success.

## Committer meeting on Sunday

We already planned a CouchDB committer meeting for Sunday. And so we met in the Ubilabs office (thanks for hosting us again) and started to discuss the next steps to CouchDB 2.0. This day was also a success because hacking on CouchDB 2.0 resulted in a even more stable CouchDB 2.0 developer preview.

Videos and Photos

The CouchDB project has a CouchDB Youtube Channel at CouchDB Youtube . You are welcome to watch the talks from the CouchDB Day. And we have also Flickr album where we put some photos from the event. Please check it out at CouchDB Flickr.

Conclusion and thanks

CouchDB Day 2015 was a blast. The feedback we received was extremely good. Some people already asked us when the next CouchDB Day will happen this year :). Please be patient and expect the next one next year.

All this would not have bend possible without our great sponsors. Please visit http://day.couchdb.org and say hello to them. You all rock!

And we also want to thank the people who helped to make this day so extremely successful. The people who talked about stuff in the groups, the speakers, the helpers, the video crew, the food crew, the photo crew and last but not least the attendees. The CouchDB Day would not have happened without you! You rock and you are awesome.

Extra special thanks go out to sum.cumo GmbH for doing all the financial stuff for us. And to Luigi Dileone for creating the awesome CouchDB Day logo. Thank you!

We are looking forward to see all of you next year. Because …

There will be a CouchDB Day 2016! Promised!

All the best for you from

Robert and Andy


Filed under: Events

by andywenk at February 24, 2015 11:12 AM

February 17, 2015

The Offical CouchDB Blog

CouchDB Weekly News, February 17, 2015

CouchDB IRC Meeting

The next CouchDB IRC Meeting will take place on February 18th, 8pm GMT (you can check your local time e.g. here). Everyone is welcome to attend this meeting. If you have anything to put on the agenda, please reply to this email or mention it at the start of the meeting. The meeting will take place in irc://irc.freenode.net/couchdb-meeting, you can also access it online by following this link.

Releases in the CouchDB Universe

  • couchdb-audit 0.1.3 – an npm and Kanso module for auditing changes to CouchDB documents
  • pouchdb-load 1.3.0 – PouchDB Load – load dumped CouchDB/PouchDB databases on the client
  • vflow-pouchdb 1.0.8 – a flow abstraction for you PouchDB or CouchDB write-stream database

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

No public answer yet:

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

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!
  • 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 have you on board!

Events

Job Opportunities for people with CouchDB skills

Time to relax!

  • Our puny brain can handle a very limited amount of logic at a time. While programmers proclaim logic as their domain, they are only sometimes and slightly better at managing complexity than the rest of us, mortals. The more logic our app has, the harder it is to change it or introduce new people to it.” – Writing code for humans
  • “Software increasingly defines the world around us. It’s rewriting everything about human interaction — I spend a lot more time on my iPhone than I do at my local civic center. Facebook, Apple, Tinder, Snapchat, and Google create our social realities — how we make friends, how we get jobs, and how mankind interacts. And the truth is, women don’t truly have a seat at the table.” – I’m Brianna Wu, And I’m Risking My Life Standing Up To Gamergate

… and also in the News


Filed under: News

by Lena Reinhard at February 17, 2015 08:14 PM

February 10, 2015

The Offical CouchDB Blog

CouchDB Weekly News, February 10, 2015

CouchDB IRC Meeting

The next CouchDB IRC Meeting will take place on February 18th, 8pm GMT (you can check your local time e.g. here). Everyone is welcome to attend this meeting. If you have anything to put on the agenda, please reply to this email or mention it at the start of the meeting. The meeting will take place in irc://irc.freenode.net/couchdb-meeting, you can also access it online by following this link.

Major Discussions

Mango working on CouchDB Master (see thread)

Mango has just been enabled in CouchDB Master, so you can now play with it. You should be able to follow this example.

Release of CouchDB 2.0? (SEE THREAD)

Question: A user asked about the expected release date or time frame for CouchDB 2.0

Answer: There is no official release date yet, especially since there is still some work to be done – e.g. the setup topics and also documentation are not yet finished (in parts not even started). You can of course already test CouchDB 2.0 in the Developer Preview.

CouchDB-Scala – a new purely functional Scala client for CouchDB (see thread)

The first public release of CouchDB-Scala has been announced – a purely functional Scala client for CouchDB. You can find the project on GitHub, a few details and notes about it are in the Wiki.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

No public answer yet:

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

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!
  • 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 have you on board!

Events

Job Opportunities for people with CouchDB skills

Time to relax!

  • “Everyone is obsessed with how successful people start their day. And if you’ve decided to do something about the quality of your life, you’ll start working on developing a morning routine and trying different versions of it. But we seem to forget that what productive people – those who work each day to achieve what they want and have hacked so many areas of their life – do before they go to bed is as important.”10 Things to do before you go to Bed
  • “Many Americans spend a minimum of eight hours per day sitting in an office, but we observed significant physical and mental health benefits in subjects after just one instance of standing up, walking out the door, and never coming back to their place of work again, … .” – Health Experts Recommend Standing Up At Desk, Leaving Office, Never Coming Back

… and also in the News


Filed under: News

by Lena Reinhard at February 10, 2015 08:03 PM

February 03, 2015

The Offical CouchDB Blog

CouchDB Weekly News, February 03, 2015

Major Discussions

Welcome to Mango to CouchDB and the ASF (see thread)

We’re excited to welcome Mango to CouchDB and the ASF this week. Mango is an API Layer for CouchDB with a MongoDB inspired query language interface for Apache CouchDB which got donated to the ASF by IBM Cloudant. The codes is located here, a GitHub mirror should be available anytime soon.

Update handlers (see thread)

Question: a user had thought that updates were automatically called upon submitting or modifying a document to the DB, but then realised that to make an update run, they need to call its URL. They asked if there’s a way to achieve what they need or if they better add the logic to their server side code.

Answers:

  • Update handlers need to be requested explicitly.
  • CouchDB doesn’t provide any method to change your documents automagically on PUT. It’s not oblivious how this feature should work
    in case of replication.
  • Normally, you don’t need any server side. All you need is to ensure
    that the clients are send you valid documents (e.g. setup validate_doc_update functions). Whether they call update handlers or they implement update handle logic on their side is not a question users should be concerned about – but valid data is.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

No public answer yet:

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

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!
  • 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 have you on board!

Events

Time to relax!

  • “But I look back and feel grateful for those trials and what they’ve taught me. They’ve forced me to grow and made me a better person. Most importantly, they taught me one of the hardest and most important lessons I’ve learned in my life: Seek to live with an open palm.”The weight is a gift

… and also in the News


Filed under: News

by Lena Reinhard at February 03, 2015 08:55 PM

January 27, 2015

The Offical CouchDB Blog

CouchDB Weekly News, January 27, 2015

Major Discussions

Offer to donate Nano and futoncli to CouchDB (see thread)

CouchDB got the offer to receive Nano and futoncli as donations. Many questions and details have been discussed in the thread. Legal questions around it have been raised separately towards the ASF Incubator this week as well.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

No public answer yet

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

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!
  • 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 have you on board!

Events

Job Opportunities for people with CouchDB skills

Time to relax!

  • “To avoid being stuck in a local maxima, we need to periodically look across boundaries. This means both looking below familiar abstractions, and above to see what others are building upon your work.” – Coevolution of Software
  • “How about let’s have 2015 be the year that we stop looking for ‘rockstars’ and stop tolerating ‘rockstar’ behavior like people who constantly interrupt and speak over others because their ‘rockstar’ opinion is just that … important. If we all mindfully work to interrupt this interrupt culture, all voices can be heard, and everyone wins.” – On interrupting interrupt culture
  • Philosophers and scientists have been at war for decades over the question of what makes human beings more than complex robots. – Why can’t the world’s greatest minds solve the mystery of consciousness?
  • “Fuelling the mind isn’t easy, it requires rigour and discipline. Put in that discipline, however, and the returns will be considerable. Your ideas will flow and, the more you apply yourself to priming the brain, the more you’ll see connections in the content you encounter.” – Designing a Mind

Filed under: News

by Lena Reinhard at January 27, 2015 07:12 PM

January 20, 2015

The Offical CouchDB Blog

CouchDB Weekly News, January 20, 2015

Major Discussions

Limitation on number of databases? (see thread)

Question: A user was wondering if CouchDB was imposing any limit on the number of databases which a single instance can serve (and replicate).

Answer: There are two limits:

  1. Operation system limit on file descriptions user allowed to manage (see uliimit).
  2. CouchDB inner limitation. See the CouchDB Docs for details.

Configuring these options right allows you to serve thousands active
databases without any problem.

CouchDB to csv file (see thread)

Question: a user is working on a script in Java to convert a whole CouchDB into a csv file and wants to know about the easiest way to do that.

Approaches:

  • using `/{db}/_all_docs?include_docs=true` (see docs)
  • Couch has an HTTP API, so you have to pull the right URL in Java (i.e. open a java.net.Connection to the right URL). You can try the URL in the browser before to check whether all the right data is there. So, you can point your browser to http://{server}:{port}/{db}/_all_docs?include_docs=true and check if you have all info in it. Then you can use something like (new java.net.URL(“http://{server}:{port}/{db}/_all_docs?include_docs=true”).openConnection()) to grab the URL connection and work from there. Using something like this is certainly useful
    when moving forward.
  • using a list and fetching it as a csv file.

Releases in the CouchDB Universe

Use Cases, Questions and Answers

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

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!
  • 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 have you on board!

Events

Job Opportunities for people with CouchDB skills

Time to relax!

  • “Turns out great minds don’t think alike. Discover how some of the world’s most original artists, writers and musicians structured their day … .” – The Daily Routines of Famous Creative People
  • “As developers, designers, and content creators we cannot control what users are carrying into their experiences with our work. They’re carrying past and present pain. We cannot pretend our users are perfect automatons, single data points on a web log devoid of emotion. We have to be kind. After all, we have our own past and present pain we’re carrying into the interaction.” – The Year of Empathy
  • “Ah, meritocracy! The great solution to all of society’s problems, at least if the white, heterosexual, cis-male hacker is to be believed. If just we’d had meritocracy, then we could actually solve the important problems, and everyone would be happy!” – There’s no merit in meritocracy

… and also in the news


Filed under: News

by Lena Reinhard at January 20, 2015 04:13 PM

January 13, 2015

The Offical CouchDB Blog

CouchDB Weekly News, January 13, 2015

Major Discussions

CouchDB Day 2015 is coming very soon (see thread)

CouchDB Day 2015 will take place in Hamburg, Germany, on February 7, 2015. You can still register a free ticket here. The schedule is already online here. The Hoodie people are giving away four travel grants for visiting CouchDB Day, you’ll find all details in this post.

For you people in Berlin: there’s also an opportunity to get a ride to Hamburg with someone visiting CouchDB day.

React.js and Fauxton (see thread)

The Fauxton team wants to move from using backbone.js for Fauxton development to using React.js and a Flux architecture. There’s already a Pull Request for the initial work and they’re looking for feedback. Generally, any feedback you will have to improve this branch is very welcome, also feedback on whether they’re adhering to the Flux pattern correctly and more questions which you can find in detail here. It would be great to have your support in this!

Open PRs which need some review and merge (see thread)

There’s a number of open PRs which need some review and help – you’ll find the list here.

Proposal: CouchDB tests organisation (see thread)

Proposal for slight change in CouchDB’s test layout, the full text is here.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

No public answer yet:

  • Stack Overflow: How to GET all doc from CouchDB database and show then in a HTML <div>?

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

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!
  • 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 have you on board!

Events

Job Opportunities for people with CouchDB skills

Time to relax!

  • “Empathy is the most important skill you can practice. It will lead to greater success personally and professionally and will allow you to become happier the more you practice.”Your most important skill: Empathy
  • “One of the most popular, enduring, and irritating myths about depression is that it means depressed people are sad all the time – and that by extension, people who are happy can’t be experiencing depression, even if they say they are.” – Depression doesn’t make you sad all the time
  • “I love Open Source. It has taught me many things going beyond programming — better collaboration, patience, compassion and mentoring. But it has a very dark side too, that often gets swept under the carpet of shiny benefits of a new career and so-called fame.”The Dark Side of Open Source

… and also in the news


Filed under: News

by Lena Reinhard at January 13, 2015 07:45 PM

December 19, 2014

The Offical CouchDB Blog

CouchDB Weekly News, December 19, 2014 and CouchDB Highlights in 2014

CouchDB IRC Meeting (see summary)

  • CouchDB Day 2015, Hamburg, Germany – if you attend and would like to talk about CouchDB 2.0 or something please get in touch with awenkhh (andywenk@apache.org)
  • CouchDB 2.0 – an email will be sent to dev@ mailing list with a first plan about dependencies reorganisation
  • Cloudant Query (Mango) Contribution
  • Fauxton – good progress, still a few blockers for 2.0
  • CouchDB Branding (logo, slogan) – ongoing discussion on marketing@ mailing list

Major Discussions

Stream CouchDB changes in PostgreSQL (see thread)

A user wrote about their setup and use case and this Node libary to stream CouchDB changes into PostgreSQL, there’s also a round of feedback and more ideas from the community in the thread.

Soft launch: CouchDB Advocate Hub now live (see thread)

In order to broaden the number of people contributing to CouchDB and give people more opportunities to support the project and our marketing efforts, we’re soft launching CouchDB’s Advocate Hub this week. There’s a basic set of challenges set up, some basic badges, and some basic rewards, which can already be tried, and which you can give feedback to (either in the community forum, or in the email thread). There’s more planned for next year, but it would be great if you could already take a first look and give us some feedback.

Deprecation of erlang@ mailing list (see thread)

As for inactivity, the erlang@ mailing list has been deprecated this week. Goodbye, Erlang mailing list, and thanks for the great times we had with you!

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

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

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!
  • 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 have you on board!

Events

Time to relax!

  • “One of the most consolidated misconceptions about programming, since the early days, is the idea that such activity is purely technical, completely exact in nature, like Math and Physics. Computation is exact, but programming is not. The first is a result of a machine operation, and the latter is still a human activity.” – The Art of Programming
  • “If you’re feeling anxious, breathe from your diaphragm in order to keep your sympathetic nervous system from revving up too much. And remember that it can be good to be keyed up: the right amount of nervousness will enhance your performance.” – The relationship between anxiety and performance
  • “It had long been tradition that operating calculating machines was “women’s work”; it was thought to be just keypunching, like typing. Women programmed and operated the punchcard machines to produce calculations for the Manhattan Project.” – Margaret Hamilton, Lead Software Engineer, Project Apollo
  • “I decided to start celebrating in a public way so that more people may be inspired to find their own ways of marking their career achievements. These are those donuts.” – The importance of donuts

CouchDB Highlights in 2014

The year is almost over, and it’s a great time for a quick look back – back at an exciting year full of work and great news from CouchDB, its community and CouchDB’s universe. And here’s to only a few of them (in random order):

  • CouchDB 2.0 Developer Preview is released.
  • CouchDB 1.6.1 released.
  • The CouchDB community established its Code of Conduct and Diverstiy Statement, which were later adopted by the Apache Software Foundation as well
  • In 2014, 9 new Committers and 2 new Project Management Committee members joined the community in addition to everyone who’s already part of the project. CouchDB now has 42 committers and 12 PMC members. We’re proud and honoured to have you all on board.
  • IBM acquired Cloudant.
  • Cloudant Local released (the first CouchDB-on-your-premises-with-enterprise-support product).
  • In March, the first issue of the CouchDB Weekly News has been published, and this post is the 38th issue of these Weekly News.
  • CouchDB got a new blog (it’s this one that you’re looking at).
  • Cloudant Query being donated to CouchDB.
  • npm’s continued success, building on CouchDB and the founding of npm, inc.
  • Postgres & MySQL continue to work on native JSON support + HTTP interfaces.
  • Several major PouchDB releases.
  • Release of Fauxton.
  • … as well as many, many more. Thanks to everyone who helped making all of this possible!

Editors’ Note

Dear reader, we want to thank you for reading this, our last issue of the CouchDB Weekly News in 2014. Both CouchDB and its Weekly News are from the community and for the community, and we’re glad that you’re with us. We wish you great last days this year and hope your new year will be off to a good start.

Stay with us, and: relax.

… and also in the news


Filed under: News

by Lena Reinhard at December 19, 2014 11:02 AM

December 11, 2014

The Offical CouchDB Blog

CouchDB Weekly News, December 11, 2014

Releases in the CouchDB Universe

  • nano-repository 1.0.0 – makes using CouchDB via Nano even easier
  • broccoli-couchdb-versioning 0.1.1 – define couchdb design documents on the file system, and automatically push them to couchdb when they change
  • boxspring 0.0.20 – a collection of Backbone Model classes for interacting with CouchDB compatible with Browser and Server-side execution
  • express-pouchdb 0.8.1 – express submodule with a CouchDB style REST interface to PouchDB
  • cradle 0.6.9 – the high-level, caching, CouchDB library
  • couchbeam 1.1.5 – a CouchDB client library for Erlang applications
  • npm have relaunched their website

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

No public answer yet:

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

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!
  • 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 have you on board!

Events

Time to relax!

  • “The idea that the software industry benefits from an unwritten law of unconditional and mutual respect is an extension of meritocratic thinking: it’s as unrealistic as the meritocracy itself.” – Codes of Conduct: when being excellent is not enough
  • “The world is not acting in our long-term benefit. Imagine you walk down the street and every store is trying to get your money right now; in your pocket you have a phone and every app wants to control your attention right now. Most of the entities in our lives really want us to make mistakes in their favor. So the world is making things very, very difficult.” – How to be efficient

… and also in the news


Filed under: News

by Lena Reinhard at December 11, 2014 02:43 PM

December 04, 2014

The Offical CouchDB Blog

CouchDB Weekly News, December 04, 2014

Major Discussions

Infinite resets hanging views (see thread)

Question: a user is trying to run a temporary view on a big-ish db (> 1000 docs), and the view seemed to hang forever, and they were not sure if there was something wrong with their view or settings. The view looked like this:

# map function
function(doc) {
emit(doc, doc.tweets);
}

Answers / approaches:

  1. Think of `map` as a way to create secondary indexes.
    1. An index on the whole document doesn’t make much sense.
    2. Moreover, at query time, if you want to get data that are in the same document, need map/reduce isn’t needed at all. Just create a `show` function.
  2. I would go further and say: Never emit the full doc in a map function.
    You can get the full doc by using the include_docs flag when querying the
    view. If you need a key that only refers to a single doc, use the _id of
    the doc.
  3. Don’t write your own reduce functions, use couch’s built in, Erlang functions (See http://wiki.apache.org/couchdb/Built-In_Reduce_Functions). You will save yourself a lot of headaches and you will not match the performance of these functions. In your case, _count is probably what you want, though you probably don’t even need a reduce function with such an index (as Aurelien essentially pointed out). Handle the case where doc.tweets doesn’t exist in your map function:
    emit(doc._id, doc.tweets || []);

Allow user-defined views (see thread)

Question: a user was thinking about a platform based on CouchDB, where each set of users would get their own CouchDB Database, to store and query data. They want to allow them to define their own custom queries to query the data and want to create a form which allows to build a query and translates it to a JS view, and, on top of that, defining custom views directly in JS – basically their custom map/reduce functions. The users would also be able to import different sets of data. Still, they were not sure about possible DoS attacks with endless loops inside the function, or attacks by emiting too much data.

Approaches:

  • os_process_timeout applies to view servers (default is 5 seconds) so you can configure the timeout for view queries, not sure about CPU/HDD Space (although inspecting _stats might shed some light).
  • If viable for the application, it may also be possible to initially have a process where new queries written are vetted by a human before they are run. The advantage of this is two-fold, namely:
    • i) you’ll be able to move on a prove your concept quickly
    • ii) while doing this, you may learn enough (and things may change enough) for you to automate the vetting process.
  • The worst case will be always RCE since you’re going allow everyone
    execute arbitrary code on your server. JavaScript query server is only safe while SpiderMonkey sandbox is. However, if you want to use some custom query servers when things will go bad since nor Python, Erlang, Clojure and other I know servers supports sandboxing which means you can do anything.
  • The idea may work for Mango – Cloudant views query DSL – since it’s very limited by allowed operations, but then you’ll face another problem: disk space will run out very quickly since a single index file may be much more bigger then database itself.
  • For now the most simple and secure way to allow custom users view is to let users replicate your database to their CouchDB instance where they can do anything whatever they need.
  • Another approach: use CouchDB for whatever you need on the server side, and when a user needs to run a custom query, run that query on a client-side copy of the data in PouchDB. This wouldn’t work with very large data sets, but would work on smaller data sets.
  • Alternatively, don’t allow the user to write the view. Build some Ui that helps creating the view function, specify some things that can be run on the data and construct the view with that. This is essentially a query builder for CouchDB.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

No public answer yet:

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

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!
  • 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 have you on board!

Events

Time to relax!

… and also in the news


Filed under: News

by Lena Reinhard at December 04, 2014 05:42 PM

November 27, 2014

The Offical CouchDB Blog

CouchDB Weekly News, November 27, 2014

Release

  • CouchDB 2.0 Developer Preview has been released last week. You can download it here, its features and more are described here

Major Discussions

Offline Replication / Synchronisation (see thread)

Question: due to infrastructural reasons, online synchronisation is impossible in a project. Thus, a user asked if it were possible to create some sort of file with the delta-update that could be transported to a place with better Internet access or to the next hub (e. g. country coordination) where it is imported in the instance running there, or anything similar that could be feasible.

Approaches:

  • If connections are bad, but work sometimes, and the use case permits that data is only synchronised sometimes, then CouchDB’s current functionalities are sufficient.
  • When connections are just always bad, the user can copy the .couch file (“the CouchDB database”) to something that they can bring to a connected hub. Then they put the .couch file into a place that can run CouchDB, start CouchDB, sync from there. CouchDB will figure out the delta. In this, the full DB will carried, but only the delta will be synchronised. Just carrying the delta is currently not really an option. If that is a concern, hacking around with pouchdb-replication-stream, pouchdb-dump-cli or pouchdb-load may help.

Releases in the CouchDB Universe

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

No public answer yet:

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

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!
  • 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 have you on board!

Events

Time to relax!

… and also in the news


Filed under: News

by Lena Reinhard at November 27, 2014 11:02 AM

November 20, 2014

The Offical CouchDB Blog

CouchDB Weekly News, November 20, 2014

Release

  • CouchDB 2.0 Developer Preview has been released. You can download it here, its features and more are described here

Major Discussions

Guidelines for creating a CouchDB Event (Work in Progress; see thread)

New guidelines for creating a CouchDB Event have been set up, you’ll find them here. Your feedback is highly appreciated.

The Apache Software Foundation adopts CouchDB’s Code of Conduct and Diversity Statement (see thread)

On November 18, the ASF has adopted the CouchDB Code of Conduct and Diversity Statement into an official ASF-wide policy.

Releases in the CouchDB Universe

  • couchdb-python 1.0 – issue fixes, improvements and more; download from PyPI | source
  • Mango – a MongoDB inspired query interface; Open Sourced by Cloudant this week, with an intent to donate it to CouchDB; more details on it are here
  • sofa – easy R interface to CouchDB

Opinions and other News in the CouchDB Universe

Use Cases, Questions and Answers

No public answer yet:

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

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!
  • 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 have you on board!

Events

Time to relax!

  • “It seems the mere mention of tools that support and encourage marginalised people to be a part of the tech industry incites a frothing flame war from the privileged.” – Tech Freedom vs. Feminism
  • “Keep cake moist by just eating the entire thing in one sitting.” – … and 12 more amazing Food and Life Hacks you need to know right now
  • “As a tech community, we are increasingly recognizing that diversity is fundamental to building a just, inclusive and beneficial industry, and that diverse teams perform better, are more innovative, and can build better products for a diverse world. In order to be successful with diverse recruiting, tech companies must invest in analysis and improvement at every stage of the hiring process.” – 25 Tips for Diverse Hiring
  • Kitten Therapy: the Prescription for Stress
  • Sloth Life

… and also in the news


Filed under: News

by Lena Reinhard at November 20, 2014 06:41 PM

June 10, 2014

The Old Official CouchDB Blog

Apache CouchDB 1.6.0 Released

Apache CouchDB 1.6.0 has been released and is available for download.

CouchDB is a database that completely embraces the web. Store your data with JSON documents. Access your documents with your web browser, via HTTP. Query, combine, and transform your documents with JavaScript. CouchDB works well with modern web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports master-master setups with automatic conflict detection.

Grab your copy here:

http://couchdb.apache.org/

Pre-built packages for Windows and OS X are available.

CouchDB 1.6.0 is a feature release, and was originally published on 2014-06-10.

These release notes are based on the changelog.

Upgrade Notes

The Proxy Authentication handler was renamed to proxy_authentication_handler to follow the *_authentication_handler form of all other handlers. The old proxy_authentification_handler name is marked as deprecated and will be removed in future releases. It’s strongly recommended to update the httpd/authentication_handlers option with the new value if you have this handler configured.

What's New

  • COUCHDB-2200: support Erlang/OTP 17.0 #35e16032
  • Fauxton: many improvements in our experimental new user interface, including switching the code editor from CodeMirror to Ace as well as better support for various browsers.
  • Add the max_count option (UUIDs Configuration) to allow rate-limiting the amount of UUIDs that can be requested from the /_uuids handler in a single request (CVE 2014-2668).
  • COUCHDB-1986: increase socket buffer size to improve replication speed for large documents and attachments, and fix tests on BSD-like systems. #9a0e561b
  • COUCHDB-1953: improve performance of multipart/related requests. #ce3e89dc
  • COUCHDB-2221: verify that authentication-related configuration settings are well-formed. #dbe769c6
  • COUCHDB-1922: fix CORS exposed headers. #4f619833
  • Rename proxy_authentification_handler to proxy_authentication_handler. #c66ac4a8
  • COUCHDB-1795: ensure the startup script clears the pid file on termination. #818ef4f9
  • COUCHDB-1962: replication can now be performed without having write access to the source database (#1d5fe2aa), the replication checkpoint interval is now configurable (#0693f98e).
  • COUCHDB-2025: add support for SOCKS5 proxies for replication. #fcd76c9
  • COUCHDB-1930: redirect to the correct page after submitting a new document with a different ID than the one suggested by Futon. #4906b591
  • COUCHDB-1923: add support for attachments and att_encoding_info options (formerly only available on the documents API) to the view API. #ca41964b
  • COUCHDB-1647: for failed replications originating from a document in the _replicator database, store the failure reason in the document. #08cac68b
  • A number of improvements for the documentation.

by djc at June 10, 2014 05:17 PM

June 06, 2014

The Old Official CouchDB Blog

CouchDB Weekly News, June 06

Weekly CouchDB meeting – summary

  • 1.6.0 release status: the vote had passed last week, binaries for Mac and Windows are ready for testing. The release will be very soon, stay tuned!
  • BigCouch merge: significant process has been made; testing is highly important now. We want to encourage everyone to help with testing COUCHDB-1843 branch, especially :5984 API iface. Info: to run the bigcouch from merge branch: clone couchdb.git, checkout 1843-feature-bigcouch, ./configure && make && dev/run. Please report any errors you find during testing on dev@ Mailing list or on IRC #couchdb-dev.
  • Bylaws, Code of Conduct and Diversity Statement: all PMC members are asked for reviewing and commenting the Bylaws and the Code of Conduct and Diversity Statement. A thread about approval models and vetoes will be started on the mailing list.

Releases in the CouchDB Universe

Opinions

Use Cases, Questions and Answers

no public answer yet:
For more new questions about CouchDB, see these search results.

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!
  • Here's a list of beginner tickets around our currently ongoing Fauxton-implementation. If you have any questions or need help, don't hesitate to contact us in the couchdb-dev IRC room (#couchdb-dev) – Garren (garren) and Sue (deathbear) are happy to help.
We'd be happy to have you!

Events

Job opportunities for people with CouchDB skills

… and also in the news

Posted on behalf of Lena Reinhard.

by Noah Slater at June 06, 2014 04:04 PM

May 30, 2014

The Old Official CouchDB Blog

CouchDB Weekly News, May 30

Major Discussions

Vote on release of Apache CouchDB 1.6.0 rc.5 (will be released as Apache CouchDB 1.6.0 — see thread)

The vote passed.

Limiting view access (see thread)

Use case: sharing docs between users with different roles and according access. Goal is to make sure via adding according CouchDB settings that no user can see who the other users of the doc are.

Answer: Natively, CouchDB doesn’t provide this functionality. Thus, the canonical answer is to use a proxy in front of CouchDB that can limit access to certain URLs, or to deploy a middleware layer written in your favourite language that can broker the access.

CouchDB minimum revs_limit and Compaction (see thread)

Use case: limiting the number of revisions stored for a specific document in a database. Setup: setting the revs_limit to a specific number and then running the compaction. This did not work, the number of revisions could not be limited this way, and the enquirer asked why.

Answer: _revs_limit does not do what one may think it does, – CouchDB is not a revision control system. After completion only the latest revision of each document is preserved. _revs_limit refers only to how many old _rev values are retained. Lowering this value will save some storage but can also make replication less efficient as a failure to find a common ancestor will cause CouchDB to copy the document afresh.

Releases in the CouchDB Universe

Special topic: Content Management Systems based on CouchDB

  • Kleks – a pure CouchDB based CMS written as a CouchApp using Kanso, Spine.js, CoffeeScript and Stylus. Supports multi-site setup and Markdown authoring
  • Couchpress – a super lightweight and modular CMS built on NodeJS, Express and CouchDB
  • CMS – a Content Management System written with Ruby on Rails and CouchDB
  • Cmtool – a rails 3.2+ CMS as engine for a CouchDB backend
  • CCMS – a Backend-free, client-side JavaScript and CouchDB based CMS
  • Falkland CMS (Website) – a Curation Management System written in Clojure, ClojureScript and CouchDB

Opinions

Use Cases, Questions and Answers

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!
  • Here's a list of beginner tickets around our currently ongoing Fauxton-implementation. If you have any questions or need help, don't hesitate to contact us in the couchdb-dev IRC room (#couchdb-dev) – Garren (garren) and Sue (deathbear) are happy to help.
We'd be happy to have you!

Events

Job opportunities for people with CouchDB skills

… and also in the news

Posted on behalf of Lena Reinhard.

by Noah Slater at May 30, 2014 04:17 PM

May 22, 2014

The Old Official CouchDB Blog

CouchDB Weekly News, May 22

Weekly CouchDB meeting – summary

  • 1.6.0 release: no new issues were found during voting on CouchDB 1.6.0 rc5
  • BigCouch merge: significant progress has been made. Everyone is still encouraged to continue helping with building and testing COUCHDB-1843 branch. Further items for discussions will be sent to the mailing list.
  • CouchDB Meetup Hamburg: the CouchDB user group in Hamburg has its own Google Plus Community and will have their next meetup will be on June 10, 2014.

Major Discussions

Running views return nothing with CouchDB 1.5.1 (ongoing discussion; see thread)
Setup: code that creates database, documents and design documents with views and lists. When views are run, nothing is returned under CouchDB 1.5.1. When the same code is run against another CouchDB server (CouchDB 1.5.0), all views return the right responses and results. Approach: the problem described here could be an error from a library not found while running an external process (CouchJS in this case). It turned out libmozjs.so was either not installed or not in a path searched by the dynamic linker. Once it is added, it should be ensured that CouchJS can be run, afterwards, CouchDB should be able to build the views without restarting CouchDB.
Discussion: Project by-laws (ongoing discussion; see thread)
The discussion about the by-laws is still ongoing, more updates have been made. They can be found here, your feedback is still very welcome.
Release Apache CouchDB 1.6.0 rc5 (see thread)
The testing and voting for all systems is still in progress.

Releases in the CouchDB Universe

Opinions

Use Cases, Questions and Answers

Get involved!

If you want to get into working on CouchDB:
  • Here's a list of beginner tickets around our currently ongoing Fauxton-implementation. If you have any questions or need help, don't hesitate to contact us in the couchdb-dev IRC room (#couchdb-dev) – Garren (garren) and Sue (deathbear) are happy to help.
We'd be happy to have you!

Events

Job opportunities for people with CouchDB skills

… and also in the news

Posted on behalf of Lena Reinhard.

by Noah Slater at May 22, 2014 04:06 PM

May 16, 2014

The Old Official CouchDB Blog

CouchDB Weekly News, May 16

Blog Posts

Weekly CouchDB meeting – summary

  • BigCouch merge: significant process has been made. We want to encourage everyone to check out the COUCHDB-1843 branch and help with testing. Info: to run the bigcouch from merge branch: clone couchdb.git, checkout 1843-feature-bigcouch, ./configure && make && dev/run. Please report any errors you find during testing on dev@ Mailing list or on IRC #couchdb-dev.
  • 1.6.0 release: 1.6.0 rc5 is still open vor testing and voting. There are now Windows binaries against Erlang 17.0, – Windows users out there, feel free to test them. On the issues with Erlang 17.0, please also see this post on what it takes to use it in production. There'll be a follow-up item on this which will be sent to the mailing list this week.
  • CouchDB Meetups: there have been two CouchDB Meetups in Hamburg and Berlin, Germany, in the last week, and both were amazing. The recap for Hamburg can be found here.

Major Discussions

Discussion: Project by-laws (ongoing discussion; see thread)

The by-laws have been discussed and updated according to the community's comments. They can be found here, your feedback is very welcome.

Release Apache CouchDB 1.6.0 rc5 (see thread)

The testing and voting for all systems is still in progress.

Releases in the CouchDB Universe

  • couch-daemon – helps you write CouchDB workers efficiently that can be implemented and managed by CouchDB as os_daemons; with a Highland streaming interface
  • couchdb2s3 (0.3.0) – export CouchDB databases to line-oriented json files on s3
  • sails-couchdb-orm (0.9.0) – CouchDB adapter for Sails.js and Waterline ORM
  • dimensionist – CouchDB daemon to extract dimensions from image attachments

Opinions

Use Cases, Questions and Answers

Get involved!

If you want to get into working on CouchDB:
  • Help us testing Apache CouchDB 1.6.0 rc5! You'll find all important information on release artefacts and test procedure here.
  • Here's a list of beginner tickets around our currently ongoing Fauxton-implementation. If you have any questions or need help, don't hesitate to contact us in the couchdb-dev IRC room (#couchdb-dev) – Garren (garren) and Sue (deathbear) are happy to help.
We'd be happy to have you!

Job opportunities for people with CouchDB skills

… and also in the news

Posted on behalf of Lena Reinhard.

by dch at May 16, 2014 12:30 PM

May 15, 2014

The Old Official CouchDB Blog

Recap CouchDB Meetup Hamburg No. 1

This is the recap from our first CouchDB User Group Hamburg Meeting at May 13th 2014.

First of all thanks to everyone for attending. Also a big thank you to Ubilabs for hosting the meetup at their awesome office in Hamburg "Schanzenviertel".

Six people have been attending at this first meeting. Although it was a quite small meeting, we have discussed many things. At the beginning, everybody introduced themselves and dropped some info about what they are doing - especially with CouchDB. Andy spoke about the CouchDB history, the Apache Software Foundation and the ASF CouchDB project. After that, Klaus was giving some insights about coding in CouchDB's core and explained various internals. And Robert showed the new awesome Fauxton webinterface for CouchDB.

Julius attended accidentally, because he originally was thinking about founding a "Hamburg Beamers" - an Erlang user group. He got in touch with Dave Cottlehuber, who is a member from the "Vienna Beamers", pointing Julius to our first meetup (thanks Dave :) ). When digging a bit deeper into CouchDB, Julius was excited about what CouchDB offers.

We were also thinking about putting the Beamers and Couchers together in one user group because we thought that one of the main topics will be Erlang. This is not decided though. We did also look into Elixir and Klaus and Julius gave some basic insights. Elixir looks really cool and promising.

After nearly three hours, we finished our beers (thanks to Ubilabs for sponsering the drinks). Everybody was happy with the first meeting and we are looking forward to the next one. We plan to have the meeting every month. So the next meeting will be in mid June. Klaus will give the first talk where he is introducing a web service he is creating for measuring software complexity with Elixir and CouchDB.

We have now created a G+ Community called CouchDB Meetup Hamburg. We will use this community to announce upcoming events. This is the easiest way at the moment.

Finally, we decided to meet again at June, 10th and again at Ubilabs. Thanks a lot in advance.

Looking forward to see also new interested folks. So please spread the word.

by andywenk at May 15, 2014 07:26 AM

May 14, 2014

The Old Official CouchDB Blog

Board Report (May 2014)

Apache CouchDB is a database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API.

Releases

1.5.1 (2014-04-08) http://www.apache.org/dist/couchdb/notes/1.5.1/apache-couchdb-1.5.1.html

Recent Activity

  • Started with weekly news with great success. Also available at https://blogs.apache.org/couchdb/
  • The community is in the process of creating a CoC and bylaws
  • Ongoing work on the release 1.6.0. Actually voting on Apache CouchDB 1.6.0-rc.4
  • Working on the BigCouch merge from Cloudant
  • Good progress in reviewing the rcouch merge
  • Community work on migrating content to the new wiki started
  • Translation work going well

Community

Including the following additions, CouchDB has 35 committers and 12 PMC members.

New committers:

  • Robert Kowalski

New PMC members:

  • Joan Touzet

Mailing list stats:

announce

  • 175 subscribers (+24)
  • 1 message since February (1)

user

  • 1386 subscribers (-19)
  • 750 messages since February (-336)

erlang

  • 167 subscribers (+13)
  • 1 messages since February (-13)

dev

  • 599 subscribers (-3)
  • 2630 messages since February (+1306)

commits

  • 104 subscribers (0)
  • 2655 messages since February (-80)

marketing

  • 31 subscribers
  • 312 messages since February

l10n

  • 36 subscribers (+5)
  • 16 messages since May (-191)

replication

  • 54 subscribers (+7)
  • 53 messages since February (+28)

Issues: None.

by Jan at May 14, 2014 11:32 AM

May 08, 2014

The Old Official CouchDB Blog

CouchDB Weekly News, May 08

Weekly CouchDB meeting – summary

  • 1.6.0 release: 1.6.0-rc.5 is out for testing, so for all systems go. 1.6.x CI is all green, a formal vote will be coming this week
  • rcouch merge status: testing up to now showed it's functional, it will be suggested for integration branch merge
  • BigCouch merge status: a massive progress has been made this week. Soon branches will be rewritten to clean up the history, afterwards the community will be asked for help with testing.
  • Fauxton: agreement that Fauxton replaces Futon in CouchDB 2.0 (post merge) and that resolution of COUCHDB-1954 prior to that is critical. There'll be a thread on dev@ mailing list about this and release preparation.
  • Bylaws, Code of Conduct, Diversity Statement: everyone in the community is still invited to read the by-laws draft and join the discussion on dev@ mailing list (see thread); an initial Code of Conduct and Diversity draft will be posted next week
  • Project release artefacts: the current state of what the project release artefacts are will be documented and publicized

Major Discussions

Discussion: Project by-laws (ongoing discussion; see thread)

The first draft of the by-laws has been modified and is still being discussed. It can be found here, your comments are very welcome.

How to get results in descending order by date and without ID field (see thread)

The docs for result orders can be found here. To remove the ID field, users can use a list function.

Release Apache CouchDB 1.6.0 rc5 (ongoing testing and discussion; see thread)

The testing for all systems is still in progress. If you want to test, please follow this test procedure. The changes since last vote round can be found here.

Releases in the CouchDB Universe

  • PouchDB 2.2.0 – including persistent mapreduce, eventemitter api, replication works for huge datasets
  • highland-couchr 1.0.0 – streaming style API to CouchDB, using couchr under the hood
  • massage-couch 0.1.0 – massage CouchDB documents with an OS daemon worker.

Opinions

Use Cases, Questions and Answers

Get involved!

If you want to get into working on CouchDB:
  • Help us testing Apache CouchDB 1.6.0 rc5! You'll find all important information on release artefacts and test procedure here.
  • Here's a list of beginner tickets around our currently ongoing Fauxton-implementation. If you have any questions or need help, don't hesitate to contact us in the couchdb-dev IRC room (#couchdb-dev) – Garren (garren) and Sue (deathbear) are happy to help.
We'd be happy to have you!

Events

Job opportunities for people with CouchDB skills

  • DevOps Engineer, New York, USA
  • Work for any of JS, UI/UX, Node, CouchDB experience (see tweet), can work remote

… and also in the news

Posted on behalf of Lena Reinhard.

by Noah Slater at May 08, 2014 06:52 PM

May 02, 2014

The Old Official CouchDB Blog

CouchDB Weekly News, May 1

Weekly CouchDB meeting – summary

  • 1.6.0 release: we are making progress, next is checking if all bugs have been fixed
  • BigCouch merge status: Cloudant will now focus on the BigCouch merge, visible progress should happen in the next couple of weeks
  • rcouch merge status: the testing is still in progress, feedback will be provided to the mailing list; merge to the new integration branch can be done after that feedback
  • Code of Conduct: the first version will now be drafted based on the discussion on the mailing list (for details, see "Major Discussions" section below)
  • By-laws: everyone in the community is invited to read the draft and join the discussion (see thread); please note that the bylaws now include a new idea about PMC chair rotation
  • Translation update: German translation is making good progress (see status here)

Major Discussions

Apache CouchDB Diversity Statement (see thread)

This discussion was initiated with the suggestion to establish a project-wide Diversity Statement. First, the idea was brought up to turn this document into a PMC charter, a document that sets out what the PMC values, their commitment to diversity, and their pledge to the project. The second idea was about how merit is being recognised and it was brought up to broaden this around the four areas community, project, documentation and code. "This is what we value. This is what we will recognise. Our promise to the community." (Noah Slater) It was agreed on creating two documents, one for the PMC charter, a second one for diversity.

Discussion: Project by-laws (ongoing discussion; see thread)

Proposal to vote in set of project by-laws that define the specific roles in this community and the decision making procedures that are used. The first draft of the by-laws has been discussed and modified accordingly and can be found here. Comments are very welcome.

Apache CouchDB Developer Code of Conduct (ongoing discussion; see thread)

The PMC initiated a thread on moving forwards establishing an Apache CouchDB Developer Code of Conduct (CoC for short). Example Codes of Conduct from Debian, Python, Django , Bantik, Node.JS and the Node.JS IRC channel policy were as well considered and discussed as transparency, the consequences of infractions and the differentiation between minor offences and major offences, how to deal with profanity and how this applies to IRC and the moderation policy there.

HIPAA (Health Insurance Portability and Accountability Act) / HIPAA 5010 / PIPEDA compliance (see thread)

Question on building applications using CouchDB while having to follow HIPAA compliance. As for the legal topic this is, the community strongly recommended the user get in touch with a lawyer and getting proper compliancy and regulatory guidance.

CouchDB load spike (see thread, see also the same question on StackOverflow)

Setup: CouchDB 1.5.0, database with < 10 GB of data in it and continuous replication. Every few hours (3-4 times per day) they recognise a huge spike that floors the load to around 1.5 and memory usage to close to 100%. It turned out there was a similar issue that was already discussed (link to gist). The user filed issue COUCHDB-2231.

Tips for general CouchDB monitoring and graphs drawing tools to check what's causing huge spikes (from Alexander Shorin, see this reply):

  • Munin plugin for CouchDB monitoring – It doesn’t handle system metrics for the CouchDB process yet, but that will be added soon; users should make sure they have a similar plugin for their monitoring system.
  • Skyline, a detector for spikes and other anomalies
  • Oculus, a metrics correlation tool that makes it very easy to compare multiple graphs for an anomaly period with it.
Release Apache CouchDB 1.6.0 rc3 (ongoing testing and discussion; see thread)

Some issues have already been fixed, the testing is still ongoing. Find all release artefacts we are voting on in this list. If you want to test, please follow this test procedure. The changes since last vote round can be found here.

Releases in the CouchDB Universe

  • yama – mail app, work in progress; syncs CouchDB instance with an email inbox for RESTful email
  • tornado-couchdb 0.2.3 – Blocking and non-blocking (asynchronous) clients for CouchDB using Tornado's httpclient
  • loveseat 0.0.11 – very limited CouchDB interface
  • follow-db-updates 0.0.2 – easy CouchDB _db_changes follower, with older couch pollyfill
  • seneca-couchdb-changes 0.1.0 – emit seneca.js events for all events in a couchdb _changes feed
  • changes-stream 1.0.3 – simple module that handles getting changes from couchdb
  • neuropil 3.0.2 – a lighter and faster registry client for CouchDB based npm server
  • nano 5.8.0 – minimalistic CouchDB driver for node.js
  • couch_tap 0.0.2 – providing a DSL that allows complex CouchDB documents to be converted into rows in a RDBMS' table

Opinions

Use Cases, Questions and Answers

Get involved!

If you want to get into working on CouchDB:
  • rcouch Merge: Erlang hackers and CouchDB users, we need your help with testing and review of the rcouch merge. It's easy! Find the how-to in this post.
  • Here's a list of beginner tickets around our currently ongoing Fauxton-implementation. If you have any questions or need help, don't hesitate to contact us in the couchdb-dev IRC room (#couchdb-dev) – Garren (garren) and Sue (deathbear) are happy to help.
  • You want join us for the updates of CouchDB-Python for Python 3? Take a look at issue 231.
We'd be happy to have you!

Events

Job opportunities for people with CouchDB skills

… and also in the news

Posted on behalf of Lena Reinhard.

by Noah Slater at May 02, 2014 04:06 PM

April 24, 2014

The Old Official CouchDB Blog

CouchDB Weekly News, April 24

Weekly CouchDB meeting – summary

  • 1.6.0 release: voting for 1.6 rc3 is open; Erlang R15 and R16 are fine, but several unexpected issues for testing with Erlang R14BX were reported; any help with testing and diagnosing the issue is welcome
  • rcouch merge status: the recent call for testing led to progress on COUCHDB-1994.The Windows build and some other little bugs could be fixed. Still, help with testing is very welcome!
  • BigCouch merge status: large progress was made last week, next steps will be code review and testing
  • BigCouch branch and the new multirepo design: how to edit individual repos and split big CouchDB.git into single and finally run the merge

Major Discussions

Error when installing CouchDB on Windows 7 (see thread)

Installation of CouchDB 1.5.1_R16B02 binary on Windows 7 lead to an issue caused by a problem with the Windows R16B02 installation file. This file has been replaced quickly, everything works now. The installation file can be downloaded here.

Compaction of a database with the same number of documents is getting slower over time (see thread)

A database containing a relatively stable number of documents (in CouchDB: "doc_count"), the documents themselves change frequently (including many insertions and deletions (CouchDB: "doc_del_count")). The person asking expected the compaction time to stay the same, but numbers showed that it took longer to compact the database over time, thus they asked why this was the case, and how it could overcome.

The reply is that compaction time in CouchDB scales with the sum of "doc_count" and "doc_del_count". As explained by Adam Kocoloski, this can currently be controlled by "1) [Purging] the deleted docs (lots of caveats about replication, potential for view index resets, etc.); 2) [Rotating] over to a new database, either by querying both or by replicating non-deleted docs to the new one. Neither one is particularly palatable. CouchDB currently keeps the tombstones around forever so that replication can always work. Making changes on that front is a pretty subtle thing but maybe not completely impossible. Also, there's a new compactor in the works that is faster and generates smaller files."

Data replication: replicating only non-deleted documents (same discussion as above; see thread)

The approach could be to either run a filtered replication or block deleted documents with a validate_doc_update function on the target database (see example function here).

How to handle terabyte databases (see thread)

This was a request about improving performance, insert time, compaction and replication for terabyte databases with billions of documents (setup: CouchDB 1.2 and CouchDB 1.4). Some approaches to handle a write-heavy workload:

  • Replication: Supply parameters to allocate more resources to a given job (code example here).
  • Insert time: Ensure that e.g. compaction only runs in the background and does not impact the throughput of interactive operations; this is work in process at the moment.
  • Compaction: A new, significantly faster compactor that also generates smaller post-compaction files that also eliminates the exponential falloff in throughput observed by the inquirer is in the works. – This problem can be solved by BigCouch as it tries to partition databases.
  • Ensure to not exceed the write capacity of the RAID (this effect is amplified for partitioned databases).
Vote: Release Apache CouchDB 1.6.0 rc3 (ongoing testing and discussion; see thread)

We encourage the whole community to download and test these release artefacts so that any critical issues can be resolved before the release is made. Everyone is free to vote on this release, so get stuck in on our dev@couchdb.apache.org mailing list! Find all release artefacts we are voting on in this list. If you want to test, please follow this test procedure. The changes since last vote round can be found here.

Releases in the CouchDB Universe

Opinions

Use Cases, Questions and Answers

Get involved!

If you want to get into working on CouchDB:
  • rcouch Merge: Erlang hackers and CouchDB users, e need your help with testing and review of the rcouch merge. It's easy! Find the how-to in this post.
  • Here's a list of beginner tickets around our currently ongoing Fauxton-implementation. If you have any questions or need help, don't hesitate to contact us in the couchdb-dev IRC room (#couchdb-dev) – Garren (garren) and Sue (deathbear) are happy to help.
  • You want join us for the updates of CouchDB-Python for Python 3? Take a look at issue 231.
We'd be happy to have you!

Events

  • April 26, Delhi, India: CouchDB meetup - Understanding how design documents work
  • June 16, 17, San Francisco, CA: CloudantCON

Job opportunities for people with CouchDB skills

… and also in the news

Posted on behalf of Lena Reinhard.

by Noah Slater at April 24, 2014 07:14 PM

April 17, 2014

Joan Touzet

Understanding race-induced conflicts in BigCouch

Distributed databases with a near-real-time multi-master configuration – such as BigCouch, coming soon to Apache CouchDB – must deal with the potential of simultaneous modifications of a single resource. While the approach taken by multiple single-machine Apache CouchDB servers using regular HTTP replication is well understood, the situation changes a little bit when dealing with BigCouch-style internal replication inside a cluster.

I think it’s time to have a better understanding of what this means, and what impact this has on you as an application developer. Most of the time, there’s no change – to your app, a BigCouch-style cluster looks and feels like a single Apache CouchDB node. But when making near-simultaneous writes to the same document from different clients, you may experience document conflicts that you wouldn’t have with an Apache CouchDB 1.x single server.

How does this happen? Bear with me – this gets a bit complex. Hopefully this diagram will help.

The sequence diagram below depicts a scenario where two very closely spaced writes to the same document in a 3-node BigCouch cluster will lead to a document conflict.

Sequence diagram showing Sequence diagram illustrating a document conflict introduced by near-simultaneous writes to a 3-node cluster.

Sequence diagram illustrating a document conflict introduced by near-simultaneous writes to a 3-node cluster.

In this example, the database cluster is a 3-node cluster, with default settings of n=3, r=2 and w=2. (This means that a successful write to a document must write 2 copies to disk before an HTTP 201 status code is returned.) Client 1 and Client 2, both external client processes talking to the cluster, are both trying to update /db/doc, which is currently at revision 3. Client 1 is trying to write rev 4-1, and Client 2 is trying to write rev 4-2.

For the purposes of this example, we are going to state a specific ordering for document writes, and treat the write as being processed serially in a specific order. In reality, writes are issued in parallel with no coordination of writes. The scenario as shown is simply one of the possible event sequences you may run into, in the wild.

Client 1’s write is being mediated by Node A. For this example, Node A issues writes to nodes A, B and C, in that order. Client 2’s write is being mediated by Node C. For this example, Node C issues writes to nodes C, B and A, in that order. Both Clients’ first writes succeed (Client 1/Node A and Client 2/Node C) and return the internal equivalent of an HTTP 201 status code.

Arbitrarily, we say Client 1’s request to Node B arrives prior to Client 2’s request to Node B. (One will always be processed before the other; it doesn’t matter which one gets there first.)  Node B makes the write of revision 4-1, and returns a 201 equivalent to Node A.

At this point, Node A has 2 successful write responses back. Since the cluster is configured with w=2, a 201 is returned to Client 1 and the client disconnects; its work finished. The third write, already issued by Node A to Node C, will eventually be handled, the conflict recorded to disk and a 409 sent back to Node A. Note that both copies of the document are kept, capturing the document conflict on Node C when this write occurs. Node A’s work is now done.

Just after completing its write of revision 4-1, Node B then processes Node C’s write attempt of rev 4-2 from Client 2. This results in the conflict being written to disk, and returns the 409 equivalent to Node C. The same happens when Node C’s write to Node A is processed. Node C now has a non-conflict 201 response from itself, and the 409 responses from Node B and Node A, so it sends the client a 202 status.

At the end of the process, all 3 nodes have both versions of the document recorded, fulfilling CouchDB’s promise of eventual consistency.

Still with me? Good.

So which document “wins”? By design, the document with the higher hash value (the second part of the _rev token, i.e. _rev=##-hash) will win. If 4-1 and 4-2 were the actual _rev values, 4-2 would win. As such, there is no guarantee that the write with a 201 response will be the ‘winner.’ [1]

The closer together writes to the same document occur, the more likely it is that the cluster may still be processing a previous write when the subsequent write comes in. Even with resolution and DELETEs of the losing conflicts, document “tombstones” will be left behind on these leaf nodes to ensure replication results in eventual consistency (CouchDB’s guarantee! [2])

The best approach is to avoid these kinds of document conflicts via an access pattern where simultaneous writes are as unlikely to occur as possible. There are a number of resources out there on how to design apps this way, but one of my favourites is to never re-write a document, store all operations as new documents, and use a view or _all_docs and the startkey/endkey parameters to retrieve the latest state of a given resource.

Barring an application redesign, your CouchDB client should look for 202s and conflicts in documents consistently, and provide evidence of this result to the application layer. [3] You can also create a conflicts view to review all conflicts in a given database.

Resist the temptation to try and resolve the conflict in the CouchDB library! Only at the application layer can you best decide how to deal with a document conflict. You might initially choose to ignore conflicts, but probably it’s in your best interest to perform some sort of manual resolution and write a new, merged version based on data in all the conflicted versions.

If you’re still lost, post in the comments or on the couchdb-user mailing list and I’ll do my best to explain.


[1] https://cloudant.com/for-developers/faq/data/, “My write returned a 201, and yet I have a conflicted document -  what gives?”

[2] Doing better is a provably difficult problem. For reference, start with  L. Lamport’s Time, Clocks and the Ordering of Events in a Distributed System, Communications of the ACM 21, 7 (July 1978), 558-565.

[3] Take note: some CouchDB libraries, such as python-couchdb, do not differentiate between a 201 and a 202 response!

by Wohali at April 17, 2014 05:01 PM

The Old Official CouchDB Blog

CouchDB Weekly News, April 17

Blog Posts

Weekly CouchDB meeting – summary

  • Bigcouch Merge: work on branches has started again and will make good progress
  • rcouch Merge: code reviews have been restarted; more help with testing is needed; discussion around Windows support, will be continued on Dev-Mailing list
  • Advocate Hub: onboarding at the moment, next steps will be sent to marketing mailing list soon
  • 1.6.0 release: release candidate 3 (rc3) is being prepared now
  • COUCHDB-1986: the issue is being investigated, will be updated soon if its status changes

Major Discussions

1.6.0 changelog review (see thread)

A discussion around what exactly should be included in 1.6.0 (see changelog and documentation for details).

Handling the Welcome Request (see thread)

How to handle the welcome message that appears from a root request and direct the "/" request to another URL (setup: version 1.5 on a Windows machine).

authentication_redirect is not working (see thread)

How to handle the redirection of users after login to other databases that service page requests (and avoid errors; setup: public application with CouchDB-based authentication).

Vote: Release Apache CouchDB 1.6.0 rc2 (see thread)

The vote was aborted because of an issue brought up by the test suite.

Modeling Relationships and providing Transactional Integrity (see thread; ongoing discussion)

… and the question if _bulk_docs is transactional (hint: it's not)

Releases in the CouchDB Universe

Opinions

Use Cases, Questions and Answers

Get involved!

If you want to get into working on CouchDB:
  • rcouch Merge: Erlang hackers and CouchDB users, we need your help with testing and review of the rcouch merge. It's easy! Find the how-to in this post.
  • Here's a list of beginner tickets around our currently ongoing Fauxton-implementation. If you have any questions or need help, don't hesitate to contact us in the couchdb-dev IRC room (#couchdb-dev) – Garren (garren) and Sue (deathbear) are happy to help.
  • You want join us for the updates of CouchDB-Python for Python 3? Take a look at issue 231.
We'd be happy to have you!

Events

Job opportunities for people with CouchDB skills

… and also in the news

Posted on behalf of Lena Reinhard.

by Noah Slater at April 17, 2014 10:03 AM

April 16, 2014

The Old Official CouchDB Blog

Merging rcouch

rcouch is a variant of CouchDB that is derived from the main Apache CouchDB code base. One way to look at it is as a “future port” of CouchDB, that is for two reasons:

  1. The internals are greatly improved. In simple terms, if CouchDB would be started to day, it would look a lot like rcouch.
  2. It comes with a number of nice new features.

So whether you are a CouchDB user or a CouchDB Erlang developer, rcouch is good news for you!

Since CouchDB has been around for a while, the internal codebase is a little crufty. We are constantly working on improving that, but one of the larger efforts have been done within the rcouch project by Apache CouchDB committer Benoit Chesneau.

At the same time, Benoit added a number of nice little features that benefit CouchDB users, just to name a few:

  • _changes for views.
  • Replication from views.
  • Write-only “Drop-Box” databases.
  • Request validation on-read.
  • _db_changes (actually, we nicked that one for Apache CouchDB 1.4 already :).

For more information, see the rcouch website.

Benoit has generously donated the rcouch project back to Apache CouchDB and has worked on merging the rcouch and the CouchDB codebases. Now it is time to review the merged code and get it into Apache CouchDB proper and put it into a new release.

With that, we need your help.

How you can help, you ask? Easy!

If you are a CouchDB user, and are not afraid to build CouchDB yourself, give the rcouch merge branch a spin:

git clone https://github.com/apache/couchdb.git
cd couchdb
git checkout -b 1994-merge-rcouch origin/1994-merge-rcouch

# Read the DEVELOPERS file to install all dependencies

# test regular build:
make

# test build with static icu library
make icu=static

# test build with shared libraries
make libs=shared

# run test suite
make check

# make a release
make rel

# run:
./rel/apache-couchdb/bin/couchdb start

# now CouchDB is running at http://127.0.0.1:5984/_utils/, as usual, you just won’t see any output.


If you are an Erlang developer, we could use your help with code reviews. Any small chunks will help!

Please see the associated JIRA ticket for more information.

Thanks so much!


FaQ: how does this relate to BigCouch?

It doesn’t really, the BigCouch merge is ongoing and we will announce updates and requests for review when the time is right. Well, actually, if we can convince you to help with the review of the rcouch merge, we can put even more resources on the BigCouch merge :)

by Jan at April 16, 2014 08:50 PM

April 10, 2014

The Old Official CouchDB Blog

CouchDB Weekly News, 10 April

Releases

Apache CouchDB 1.5.1 released
This is a security release. Download link | Release notes

Blog Posts

Major Discussions

Writing many docs at once: bench marking a 10k write to a CouchDB server (see thread here)
A discussion around handling and measurements of bulk input in CouchDB.
Question about "complex" range queries (see thread here)
Requirements for sort orders of data views.
Is the revision field deterministic? (see thread here)
Quoting Robert Samuel Newson's reply: "Yes, it’s deterministic. The same document with the same history will have the same _rev value. This is an optimization over the previous algorithm where _rev was a random UUID. […] The advantage is that two servers receiving the same update can more optimally replicate. They still have to check that the target has all _id/_rev pairs but will usually be able to skip actually transmitting document and attachment content."

CouchDB Universe

  • Apache Con has taken place from April 7-9. You can find the slides of the talks given here

Releases in the CouchDB Universe

  • New Erlang Version is out
  • mbtiles2couchdb, for using CouchDB as a simple tiles server
  • RCouch has a new home: announcement | the new home
  • PPnet, a minimal social network to drop into websites based on PouchDB
  • sabisu, a sensu web UI, got open sourced by Cloudant last week
  • Janus, an online storage for offline Web Apps built using PouchDB
  • couche 0.0.2, a couchdb client for node, with specific apis
  • mock-couch, an http server pretending to be couchdb, for unit testing
  • couchdb-sync 0.1.1 - a generic couchdb replicator which is basically an eventemitter
  • hackoregon-couch 0.0.2 which exports database information from PostgreSQL and imports into CouchDB
  • overwatch 0.2.7, a deterministic couchdb replication watcher

Opinions

Use Cases, Questions and Answers

Get Involved!

If you want to get into working on CouchDB:
  • here's a list of beginner tickets around our currently ongoing Fauxton-implementation. If you have any questions or need help, don't hesitate to contact us in the couchdb-dev IRC room (#couchdb-dev) – Garren (garren) and Sue (deathbear) are happy to help.
  • Your help on updating CouchDB-Python for Python 3. Wanna join? Please participate here.
We'd be happy to have you!

New PMC Member

  • Joan Touzet joins the Apache CouchDB Project Management Committee today. Joan has made outstanding, sustained contributions to the project. Welcome to the Couch, Joan!

Events

Job opportunities

… and also in the news

Posted on behalf of Lena Reinhard.

by Noah Slater at April 10, 2014 10:59 AM

April 09, 2014

The Old Official CouchDB Blog

Apache CouchDB 1.5.1 Released

Apache CouchDB 1.5.1 has been released and is available for download.

CouchDB is a database that completely embraces the web. Store your data with JSON documents. Access your documents with your web browser, via HTTP. Query, combine, and transform your documents with JavaScript. CouchDB works well with modern web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports master-master setups with automatic conflict detection.

Grab your copy here:

http://couchdb.apache.org/

Pre-built packages for Windows and OS X are available.

CouchDB 1.5.1 is a security release, and was originally published on 2014-04-09.

These release notes are based on the changelog.

Changes

  • Add the max_count option (UUIDs Configuration) to allow rate-limiting the amount of UUIDs that can be requested from the /_uuids handler in a single request.

by djc at April 09, 2014 05:39 PM

Apache CouchDB 1.5.0 Released

Apache CouchDB 1.5.0 has been released and is available for download.

CouchDB is a database that completely embraces the web. Store your data with JSON documents. Access your documents with your web browser, via HTTP. Query, combine, and transform your documents with JavaScript. CouchDB works well with modern web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports master-master setups with automatic conflict detection.

Grab your copy here:

http://couchdb.apache.org/

Pre-built packages for Windows and OS X are available.

CouchDB 1.5.0 is a feature release, and was originally published on 2013-11-05.

These release notes are based on the changelog.

Changes

  • COUCHDB-1781: The official documentation has been overhauled. A lot of content from other sources have been merged, and the index page has been rebuilt to make the docs much more accessible. #54813a7
  • A new administration UI, codenamed Fauxton, has been included as an experimental preview. It can be accessed at /_utils/fauxton/. There are too many improvements here to list them all. We are looking for feedback from the community on this preview release.
  • COUCHDB-1888: Fixed an issue where admin users would be restricted by the public_fields feature.
  • Fixed an issue with the JavaScript CLI test runner. #be76882, #54813a7
  • COUCHDB-1867: An experimental plugin feature has been added. See src/couch_plugin/README.md for details. We invite the community to test and report any findings.
  • COUCHDB-1894: An experimental Node.js-based query server runtime has been added. See Experimental Features for details. We invite the community to test and report any findings.
  • COUCHDB-1901: Better retry mechanism for transferring attachments during replication. #4ca2cec

by djc at April 09, 2014 05:37 PM

April 08, 2014

The Old Official CouchDB Blog

CouchDB and the Heartbleed SSL/TLS Vulnerability

You may or may not have heard about the Heartbleed SSL/TLS vulnerability yet. Without much exaggeration, this is a big one.

What does this mean for CouchDB?

1. If you are using CouchDB with the built-in SSL support, you are at the whim of Erlang/OTP’s handling of SSL. Lucky for you, while they do use OpenSSL for the heavy lifting, they do the TLS/SSL handshake logic in Erlang (Source). That means you are not affected by this issue.

2. If you are using CouchDB behind a third-party proxy server you are at the whim of the SSL library it uses. For the big three Apache, nginx and HAProxy it’s all OpenSSL. So if they are using OpenSSL 1.0.1-1.0.1f with heartbeat support (RFC6520) enabled (the default), you need to take action. As far as I can tell now:

  • 0. Check if you are vulnerable
  • 1. Stop your service.
  • 2. Upgrade to OpenSSL 1.0.1g or recompile OpenSSL without heartbeat support.
  • 3. Request new cert from your SSL cert vendor.
  • 4. Revoke your old cert.
  • 5. Invalidate all existing sessions by changing the CouchDB couchdb_httpd_auth/secret configuration value to a new UUID.
  • 6. Restart your service.
  • 7. Invalidate all your user’s passwords and/or OAuth tokens.
  • 8. Notify your users that any of their data and passwords are potentially compromised.

by Jan at April 08, 2014 03:53 PM

The Little Things(1): Do Not Delete

CouchDB takes data storage extremely seriously. This usually means we work hard to make sure that the CouchDB storage modules are as robust as we can make them. Sometimes though, we go all the way to the HTTP API to secure against accidental data loss, saving users from their mistakes, rather than dealing with hard drives and kernel caches that usually stand in the way of safe data storage.

The scenario:

To delete a document in CouchDB, you issue the following HTTP request:

DELETE /database/docid?rev=12345 HTTP/1.1

A common way to program this looks like this:

http.request('DELETE', db + '/' + docId + '?rev=' + docRev);

So far so innocent. Sometimes though, users came to us and complained that their whole database was deleted by that code.

Turns out the above code creates a request that deletes the whole database, if the docId variable isn’t set correctly. The request then looks like:

DELETE /database/?rev=12345 HTTP/1.1

It looks like an honest mistake, once you check the CouchDB log file, but good old CouchDB would just go ahead and delete the database, ignoring the ?rev= value.

We thought this is a good opportunity to help users not accidentally losing their data. So since late 2009 (yes, this is an oldie, but it came up in a recent discussion and we thought it is worth writing about :), CouchDB will not delete a database, if it sees that a ?rev= parameter is present and it looks like that this is just a malformed request, as database deletions have no business requiring a ?rev=.

One can make an easy argument that the code sample is fairly shoddy and we’d agree. But we are not here to argue how our users use our database beyond complying with the API and recommended use-cases. And if we can help them keep their data, that’s a win in our book

Continuing down this thought, we thought we could do one better. You know that to delete a document, you must pass the current rev value, like you see above. This is to ensure that we don’t delete the document accidentally without knowing that someone else may have added an update to it that we don’t actually want to delete. It’s CouchDB’s standard multi version currency control (MVCC) mechanism at work.

Databases don’t have revisions like documents, and deleting a database is a simple HTTP DELETE /database away. Databases, however, do have a sequence id, it’s the ID you get from the changes feed, it’s an number that starts at 0 when the database is created and increments by 1 each time a document is added, updated or deleted. Each state of the database has a single sequence ID associated with it.

Similar to a rev, we could require the latest sequence ID to delete a database, as in:

DELETE /database?seq_id=6789

And deny database deletes that don’t carry the latest seq_id. We think this is a decent idea, but unfortunately, this would break backwards compatibility with older versions of CouchDB and it would break a good amount of code in the field, so we are hesitant to add this feature. In addition, sequence IDs change a little when BigCouch finally gets merged, so we’d have to look at this again then.

In the meantime, we have the protection against simple coding errors and we are happy that our users keep their hard earned data more often now.

by Jan at April 08, 2014 01:59 PM

April 03, 2014

The Old Official CouchDB Blog

CouchDB Weekly News, April 3

Major Discussions

Vote on release of Apache CouchDB 1.5.1-rc.1 (will be released as Apache CouchDB 1.5.1 — see thread)

The vote passed.

Importing CSV data into a CouchDB document using Python-Cloudant module (discussion still open — see thread)

Approaches brought up: (1) Transforming a CSV file into a JSON file with Python; (2) rc_scv, a direct rcouch extension; (3) using Google Refine and Max Ogden's refine uploader (see visual example here); (4) CSV2Couch. Further information can also be found in this blog post on "Using Python with Cloudant" and the newer Cloudant-Python interface

CouchDB 1.6.0 proposals (see thread)

Discussion around the open blocker plus how to deal with it and around re-cutting 1.6.x from master. Releasing 1.5.1 will take precedence.

Poll around Erlang whitespace standards (see thread; the poll is still open)

Joan Touzet: "I know many of you are fed up with not being able to auto format in your favourite editor and match the CouchDB Erlang coding standards, or receiving pull requests that are formatted poorly. I'd like to fix that with an appropriate whitespace standard, and supplementary plugins for vi and Emacs that will just Do The Right Thing and let us all stop worrying about whitespace corrections in pull requests."

There's currently a poll around this topic which is still open.

Multiple Concurrent Instances of CouchDB on Mac OS X 10.7.5 (see thread)

Approaches: (1) for a powerful enough machine Vagrant could be used to spin up a few CouchDB VMs, e.g. with CouchDB-Vagrant. Other options could be: (2) using Docker, (3) Node-Multicouch (used in Hoodie) or (4) this script to configure isolated instances, it should be possible to point couchdb to the CouchDB commands inside the .app.

CouchDB Universe

Releases in the CouchDB Universe

  • Wilt 3.0.0 – a browser/server based CouchDB API library based on the SAG CouchDB library for PHP
  • contentful-2-couchdb – a proof of concept for easy data export to CouchDB and replication use
  • Availability of MariaDB 10 announced
  • PouchDB released a new website
  • PouchDB 2.1.0 release includes e.g. (all release notes here):
    • Support optional leveldown builds
    • Replication performance improvements
    • Fix for localStorage detection in Chrome Apps
    • Improved error reporting from replicator et al.

Opinions

Use Cases, Questions and Answers

Getting involved into CouchDB

If you want to get into working on CouchDB: here's a list of beginner tickets you can get started with. These are issues around our currently ongoing Fauxton-implementation. If you have any questions or need help, don't hesitate to contact us in the couchdb-dev IRC room (#couchdb-dev) – Garren (garren) and Sue (deathbear) are happy to help. We'd appreciate having you!

New Committers and PMC Members

… and also in the news

Posted on behalf of Lena Reinhard.

by Noah Slater at April 03, 2014 10:19 AM

March 27, 2014

The Old Official CouchDB Blog

CouchDB Weekly News, March 27

Welcome to the Apache CouchDB weekly news! From today on, we’ll bring you the highlights of what happened in the CouchDB Universe each thursday.

Major Discussions

BigCouch vs. Couchbase
A comparison between the two, around conflict solving, revision docs, nodes, replicas and hashing. Find the thread here.
Healthcare projects running on CouchDB
Albin Stigö asked for healthcare companies / projects using CouchDB. In the thread, a collection of examples and reasons why this is a good fit was discussed. CouchDB works well in healthcare due to its relative ease of configuration and deployment, easy synchronization, backups, attachment-handling and notifications and mobile-readiness. Some examples of projects / companies using CouchDB: CommCare HQ, Mobius, Neurofoundation. Find his summary and the entire thread here.

Weekly CouchDB meeting – summary

  • 1.6.rc-2: discussion around blocker; will be collated and sent to the mailing list
  • Marketing: there'll be a weekly CouchDB news (which you are currently reading)
  • Fauxton - status: Futon will be removed as soon as Fauxton-implementation is done; following release will be marked as beta
  • Merges: discussion around BigCouch and rcouch merges will also be collated and sent to the mailing list

CouchDB Universe

Opinions

… and also in the news

Posted on behalf of Lena Reinhard.

by Noah Slater at March 27, 2014 03:29 PM

March 24, 2014

Joan Touzet

Hello world!

This is a test post for integration with Planet CouchDB, the aggregator for all things bloggy and CouchDB-related. I’m excited to be a part of the group!

by Wohali at March 24, 2014 01:02 PM

March 13, 2014

The Old Official CouchDB Blog

On The CouchDB Community

Jan Lehnardt sent a link to the CouchDB marketing@couchdb.apache.org mailing list where Ari Najarian used CouchDB in a five part course to teach beginners how to program. It’s a great read and I invite you to visit the page.

I would like to slice out one quote from the article where Ari described the CouchDB community:

“The personalities and voices in the CouchDB community are, hands down, the most helpful, generous, welcoming, insightful, ethical, principled, future-minded group of developers I’ve ever encountered in one place. As far as online communities go, you can’t find a safer, more encouraging group of advocates. These people are role models that will help beginners to understand what “open-source” can really be about: social justice, diversity, inclusion, and collaboration.”

This is the reason why I became a part of the Apache CouchDB project - because the community is so awesome.

by andywenk at March 13, 2014 04:49 PM

February 24, 2014

The Old Official CouchDB Blog

The State of CouchDB

This is a rough transcript of the CouchDB Conf, Vancouver Keynote.

Welcome

Good morning everyone. I thank you all for coming on this fine day in Vancouver. I’m very happy to be here. My name is Jan Lehnardt and I am the Vice President of Apache CouchDB at the Apache Software Foundation, but that’s just a fancy title that means I have to do a bunch of extra work behind the scenes. I’m also a core contributor to Apache CouchDB and I am the longest active committer to the project at this point.

I started helping out with CouchDB in 2006 and that feels like a lifetime ago. We’ve come a long way, we’ve shaped the database industry in a big way, we went though a phoenix from the ashes time and came out still inspiring future generations of developers to do great things.

So it is with great honour that I get to be here on stage before you to take a look at the state of CouchDB.

Numbers

I’d like to start with some numbers:

  • In 2013 we added 15 committers to the project, up to a total of 30. Thats 2x the number of people regularly contributing to CouchDB!
  • The year isn’t yet over, but these committers already created 3x the commits of 2012. And they have committed more than in any other year in CouchDB’s history.
  • We have shipped eight releases: 1.0.4 1.1.2, 1.2.1, 1.2.2, 1.3.0, 1.3.1, 1,4.0 and 1.5.0 just this year, that is up from one(!) last year.
    • thanks to our new release schedule we are getting more features to more people faster by focusing on small iterative changes forward.
  • 20% more JIRA tickets and 50% more GitHub issues

We have made a lot of changes in 2012 to make 2013 a great year for CouchDB and it sure looks like we succeeded and that 2014 is only going to trump that.

I’d like to thank everyone on the team for their hard work.

Currently

We’ve just shipped CouchDB 1.5.0 last week and it comes with a few exciting new things as previews, for you to try out and play with and report any issues with back to us. And that is on top of all the regular bug fixing and other improvements.

  1. A completely new developed admin UI, nicknamed Fauxton, that is poised to replace the much-loved, but increasingly dated Futon. I’d like to personally thank the Fauxton team: Sue “Deathbear” Lockwood, Russell “Chewbranca” Branca, Garren Smith and many more volunteers for their work as well as the company Cloudant for sponsoring a good chunk of that work. Great job everyone! Fauxton is going to be replacing Futon in one of the next few releases and will give us the foundation for the next stage of CouchDB’s life.

  2. Plugins. While it was always possible to write plugins for CouchDB, you kind of had to be an expert in CouchDB to get started. We believe that writing plugins is a great gateway drug to getting more people to hack on CouchDB proper, so we made it simpler to build plugins and to install plugins into a running instance of CouchDB. It is still very early days, we don’t even have a plugin registry yet, but we are surely excited about the prospects of installing GeoCouch with a single click of a button in Futon or Fauxton. We also included a template plugin that you can easily extend and make your own, along with a guide to get you started.  

    The plugins effort also supports a larger trend we are starting to follow with the CouchDB core codebase: decide on a well-defined core set of functionality and delegate more esoteric things to a rich plugin system That means we no longer have to decline the inclusion of useful code like we’ve done in the past, because it wasn’t applicable to the majority of CouchDB users. Now we can support fringe features and plugins that are only useful to a few of our users, but who really need them.

  3. A Node.JS query server. CouchDB relies on JavaScript for a number of core features and we want to continue to do so. In order to keep up with the rapid improvements made to the JavaScript ecosystem we have tentative plans to switch from a Spidermonkey-driven query server to a V8-driven one. In addition, the Node.js project has a really good installation story, something that we had trouble with in the past, and includes a few utilities that make it very easy for us to switch the query server over.

    All this however is not to blindly follow the latest trends, but to encourage the community to take on the query server and introduce much needed improvements. The current view server is a tricky mix of JS, Erlang and C and we are not seeing many people daring to jump into that. In a second step we expect these improvements to trickle down to the other query server implementations like Python or PHP and make things better for everyone. For now this is also a developer preview and we are inviting all Node.js developers to join us and build a a better query server.

  4. Docs landed in 1.4.0, but 1.5.0 is seeing a major update to the now built-in documentation system. With major thanks to Alexander Shorin, Dirkjan Ochtmann and Dave Cottlehuber who were instrumental in that effort, CouchDB now has “really good docs” instead of a “really crappy wiki”, that are shipped with every release and are integrated with Futon and Fauxton.

Beyond

The immediate next area of focus for the CouchDB project is the merging of two forks: BigCouch and rcouch.

BigCouch is a Dynamo implementation on top of CouchDB that manages a cluster of machines and makes them look as a single one, adding performance improvements and fault tolerance to a CouchDB installation. This is a major step in CouchDB’s evolution as it was designed for such a system from the start, but the core project never included a way to use and manage a cluster. Cloudant have donated their BigCouch codebase to the Apache project already and we are working on an integration.

rcouch is a what I would call a “future port” of CouchDB by longtime committer and contributor Benoit Chesneau. rcouch looks like CouchDB would, if we started fresh today with a modern architecture. Together with BigCouch’s improvements, this will thoroughly modernise CouchDB’s codebase to the latest state of the art of Erlang projects. rcouch also includes a good number of nifty features that make a great addition to CouchDB’s core feature set and some great plugins.

Finally, we’ve just started an effort to set up infrastructure and called for volunteers to translate the CouchDB documentation and admin interface into all major languages. Driven by Andy Wenk from Hamburg, we already have a handful of people signed up to help with translations for a number of different languages.

This is going to keep us busy for a bit and we are looking forward to ship some great releases with these features.

tl;dr

2013 was a phenomenal year for Apache CouchDB. 2014 is poised to be even greater, there are more people than ever pushing CouchDB forward and there is plenty of stuff to do and hopefully, we get to shape some more of the future of computing.

Thank you!

by Jan at February 24, 2014 05:53 PM

Cloudant and IBM: Our Commitment to Apache CouchDB

IBM have announced that they are acquiring Cloudant.

Adam Kocoloski is co-founder and CTO of Cloudant as well as serving on CouchDB's Project Management Committee. And with his permission, I am re-posting an email he sent to the CouchDB developer list a few hours ago.

In his words:

"Apache CouchDB means a great deal to me, and to Cloudant as a company. Cloudant and CouchDB have grown alongside each other over the past several years in one of the more authentic vendor/community collaborations I can think of in Apache history. Today marks the next step in Cloudant’s growth as we enter into a definitive agreement to become part of IBM.

"What does this mean for CouchDB? I would not have agreed to this transaction if I had any concerns about Cloudant’s ability to continue its contributions and collaboration with Apache CouchDB. IBM has a strong track record in open source software and a productive relationship with Apache; in fact, IBM was instrumental in bringing CouchDB to the ASF many years ago. IBM is fully supportive of our efforts here, and I’m looking forward to bringing increased resources to bear in support of the project.

"CouchDB has the potential to shape the future of distributed data management and computing. 2013 was a year of tremendous progress, as we doubled our committer base and shipped no fewer than eight releases. Already in 2014 we’ve seen amazing progress on long-standing initiatives to enhance the core of the system. The timing is right — in the market and for the community — to take the next big step forward. With your help, that is exactly what we will do.

"Truly, the future of CouchDB is CouchDB."

Thanks Adam!

I'd like to extend my hearty congratulations to everyone at Cloudant.

The future for CouchDB looks very interesting...

by Noah Slater at February 24, 2014 05:47 PM

February 14, 2014

The Old Official CouchDB Blog

Board Report (Februrary 2014)

Description

CouchDB submits a board report every quarter. Here's a copy of our February board report.

Releases

No releases in this time period.

Release has been blocked on a number of issues, but is actively being worked on.

Recent Activity

  • Number of the core devs met in Vienna to discuss the pending merges.
  • Finalising the merge of Benoit Chesneau’s rcouch fork.
  • Working on the BigCouch merge from Cloudant.
  • Created a replication list to discuss specific replication topics.
  • New marketing list about to be created for new marketing team.
  • Confluence wiki set up, and migration being planned.
  • Review Board instance set up, and discussion about review ongoing.
  • Translation work going well.
  • Community-provided packages added for Ubuntu Precise and upcoming Trusty release.

Community

Including the following additions, CouchDB has 31 committers and 9 PMC members.

New committers:

  • Nick North

No new PMC members. Most recent PMC addition Nov 9th, 2012.

Mailing list stats:

  • announce
    • 151 subscribers (+20)
    • 1 message since May (-1)
  • user
    • 1405 subscribers (-26)
    • 1086 messages since May (+280)
  • erlang
    • 154 subscribers (+8)
    • 14 messages since May (-8)
  • dev
    • 602 subscribers (-4)
    • 1977 messages since May (+1097)
  • commits
    • 104 subscribers (-1)
    • 2735 messages since May (+1694)
  • l10n
    • 31 subscribers (+10)
    • 207 messages since May (+104)
  • replication
    • 47 subscribers
    • 35 messages since May

Issues

None.

by Noah Slater at February 14, 2014 05:24 PM

Board Report (November 2013)

CouchDB submits a board report every quarter. Here's a copy of our November board report.

Description

Apache CouchDB is a database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API.

Releases

Recent Activity

  • Finalising the merge of Benoit Chesneau’s rcouch fork.
  • Preparation of CouchCamp Vienna, a community run weekend hackathon.
  • Successful run of CouchDB Conf Vancouver with ~80 attendees, 13 speakers. Videos will be available.
  • Created an I18N list and translation team to drive translation efforts.
  • Passed a proposal on using Influitive to boost our community engagement.

Community

Including the following additions, CouchDB has 29 committers and 9 PMC members.

New committers:

No new PMC members. Most recent PMC addition Nov 9th, 2012.

Mailing list stats:

  • announce
    • 131 subscribers (+37)
    • 2 message since August (+1)
  • user
    • 1431 subscribers (-10)
    • 806 messages since August (+310)
  • erlang
    • 146 subscribers (+25)
    • 22 messages since August (15)
  • dev
    • 606 subscribers (+7)
    • 880 messages since August (-130)
  • commits
    • 105 subscribers (-2)
    • 1041 messages since August (+344)
  • l10n
    • 21 subscribers (+21)
    • 103 messages since August (+103)

Issues

None.

by Noah Slater at February 14, 2014 05:20 PM

February 13, 2014

The Old Official CouchDB Blog

Packages for Ubuntu 12.04 Precise

I’m delighted to announce the availability of Apache CouchDB Ubuntu Precise (12.04) packages, with integrated upstart support.

These have been contributed with support from Mobius Medical Systems, LP, who use Apache CouchDB in their product Mobius3D/FX for oncology and radiology, and funded the development of this work through the Couch Firm.

This would not have been possible without the assistance of Jason DeRose (who has lead the 1.5.0 package going into the next Ubuntu Trusty release), and Noah Slater, who was surprised on reviewing the package to find so much of his original work there!

Installation should be straightforward, usual caveats around making backup before upgrading precautions apply, noting that between 1.0.1 and 1.5.0 there are a number of key changes, including the on-disk data format used by the .couch files was upgraded. Although it should keep your dbs intact and do the right thing for your local.ini files, always have a backup - or two!

sudo apt-get install python-software-properties -y
sudo add-apt-repository ppa:couchdb/stable -y
sudo apt-get update -y
# remove any existing couchdb
sudo apt-get remove couchdb couchdb-bin couchdb-common -yf
# see my shiny 1.5.0 goodness
sudo apt-get install -V couchdb
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following extra packages will be installed:
       couchdb-bin (1.5.0-0ubuntu2)
       couchdb-common (1.5.0-0ubuntu2)
       couchdb (1.5.0-0ubuntu2)
     … Y …

# manage via upstart
sudo stop couchdb
    couchdb stop/waiting
sudo start couchdb
    couchdb start/running, process 3541
…

You can of course modify or duplicate the /etc/init/couchdb.conf script, to support running multiple CouchDB instances or users on the same box.

Note there's also a couchdb/dev PPA which will be used for testing and updating the next release, e.g. the upcoming 1.6.0, before switching it over to the stable branch once it's had enough eyes on it.

by dch at February 13, 2014 12:19 PM

December 11, 2013

The Old Official CouchDB Blog

CouchDB Conf Videos

Videos from CouchDB Conf are now available.

CouchDB everywhere with PouchDB
Dale Harvey, Mozilla
PouchDB is CouchDB written in JavaScript, that means it runs everywhere, I mean everywhere. Find out about why this changes everything for CouchDB and app developers, as well as the latest updates and status of the project.

CouchDB Writ Large
Mike Miller, Cloudant
In this talk, Mike Miller describes how CouchDB fits into Cloudant's software stack as one of many open source projects the company uses to run distributed database clusters around the world.

Replication, FTW!
Benjamin Young, Cloudant
Jan's "call to arms" earlier this year made replication the central focus of Apache CouchDB. Replication is the feature that makes CouchDB so distinctive in any marketplace (open or otherwise) and sets it apart from the NoSQL pack. We'll take a look at the various replicating databases, how we can extend the reach of replication, and how we can help others find their way into this world of JSON juggling.

10 Common Misconceptions about CouchDB
Joan Touzet, Atypical
I've consulted with hundreds of people who use CouchDB, and the same sorts of questions keep coming up. Come to this talk if you want to know more about the kinds of mistakes many users make when thinking about how to use the database in their application. I'll talk a bit about the "rough edges" of CouchDB, and how to work them to your advantage.

Experiences using CouchDB inside Microsoft's Windows Azure team
Will Perry and Brian Benz
Will Perry, a developer on the Windows Azure team, is part of a small team at Microsoft that has been using CouchDB extensively on an internal project. In this talk, he'll share motivation for using CouchDB, experiences using and running CouchDB in Azure, design and architectural patterns the team used and a quick run-down of some of the things they love and struggle with on a team more used to relational SQL DBs.

Deep Dive into a Shallow Write Pool
Jason Johnson, IBM SoftLayer
When storing data safely, disk I/O is almost always a major bottleneck. In this talk, we'll examine some of CouchDB's write patterns and explore how we can tune underlying storage media to complement those patterns.

Say Hello to Fauxton, the New Web Dashboard for CouchDB
Russell Branca, Cloudant
In this talk, Cloudant Engineer Russell Branca discusses the new Web dashboard that will soon be released for Apache CouchDB.

Making CouchDB Plugins
Jason Smith, Nodejitsu
CouchDB now has plugin support! This talk explains the design of the plugin system and demonstrates extending CouchDB by building example plugins. From "my first Erlang project" to major CouchDB changes, plugins have something for everybody.

Personal Web Apps
Nathan Vander Wilt, freelance product developer
CouchDB is great at keeping track of all sorts of personal data — everything from notes and contacts, to sharing a live stream of photos from a balloon 250 feet above a construction site. I'll demo of some of the more interesting apps I've been building for my "personal cloud" and talk about the CouchDB features which make them easy. We'll also explore what CouchDB *doesn't* do and how to get those things done anyway.

How CouchDB is powering the next-generation cloud storage
Sascha Reuter, doctape / tape.io GmbH
This talk will give you an overview on how we leverage CouchDB to be the heart of our cloud-storage service. It will cover a whole bunch of fascinating real-life experiences, as well as some nifty tricks on how to unleash CouchDB's full potential in production. I'll show off how the mighty changes-stream helps us interconnecting different components of our service, as well as pushing realtime UI updates & notifications to our users. I'll also tell you about things to avoid, to guarantee full performance, data consistency and high availability in production. To the end, I'll show off how we use CouchDB even as our global queue for processing & conversion jobs and why this is actually a pretty good idea.

Open Data with Couch, Pouch, and Cloudant: Liberating the Laws of Massachusetts
Calvin Metcalf
As a member of Code for Boston, the Boston Code for America Brigade I scrapped the complete laws of Massachusetts to JSON, put them into a CouchDB database on Cloudant, and then used Cloudant to implement full-text search and PouchDB to make a demo app for people to browse the laws. Learn how couch can help distribute open data when that data is too big to just dump into github.

War stories from npmjs.org
Charlie Robbins & Jason Smith, Nodejitsu
Q&A with Nodejitsu and npmjs.org, the package manager for the Node.js server-side JavaScript platform — running CouchDB on the back end.

Check out the full playlist on YouTube.

Thank you to Cloudant for recording and making these videos available.

by Noah Slater at December 11, 2013 03:53 PM

November 09, 2013

The Old Official CouchDB Blog

CouchDB will go multilingual - looking for contributors!

The Apache CouchDB project is pleased to announce the creation of a localization team. The l10n@couchdb.apache.org mailing list has been set up to cover everything l10n- and i18n-related in Apache CouchDB.

The first steps will be to set up some tools to enable easy translation of the documentation and (at a later point) the administration interface (Futon/Fauxton). We are looking for people who want to help out. Would you like to read the CouchDB documentation in another language, and have some time to spare? Please help out! Bonus points if you have experience with translation or localization-related tools and best practices.

We’re just getting started: we have some ideas on how to get started, but we need more help. If you’re interested, please subscribe to l10n@couchdb.apache.org and let us know!

Cheers from the Apache CouchDB I10n team

by andywenk at November 09, 2013 10:09 PM

November 05, 2013

The Old Official CouchDB Blog

CouchDB Conf is Next Week

It’s almost time for CouchDB Conf, held in Vancouver on November the 13th. That’s the day before Cascadia JS. If you don’t have your ticket to CouchDB Conf yet, there’s still time secure a place. Come meet the community, and learn about the future of CouchDB. The ticket includes a reception at Cascadia JS, which starts the day after CouchDB Conf.

Purchase your ticket for CouchDB Conf now

The conference will include sessions that span Apache CouchDB and related technologies — covering everything from getting started to advanced features as well as CouchDB internals, application development, and best practices. Attendees will also get updates on other projects in the community such as PouchDB, a Web browser-based database capable of replicating data with Apache CouchDB and other compatible databases. Featured speakers include Jan Lehnardt, Hoodie; Joan Touzet, Atypical; Brian Benz, Microsoft; and Dale Harvey, Mozilla.

Featured Discussions:

  • Apache CouchDB is the database that replicates. CouchDB-style replication is now supported in a wide range of databases that live in browsers (PouchDB), mobile (TouchDB), and the cloud. Many of the talks will cover various aspects of using replication and modeling your data to work with it.
  • Fauxton is the new Futon, CouchDB's Web-based administration console. Fauxton brings a fresh, modular approach to UI for Apache CouchDB. It is available at /_fauxton in Apache CouchDB 1.5, and will eventually become the new /_utils UI.

Apache CouchDB Conf is the event to attend to expand knowledge, meet project committers and contributors, and find out where Apache CouchDB is headed.

Visit the conference website for more information.

We hope to see you there!

by Noah Slater at November 05, 2013 05:04 PM

October 10, 2013

The Old Official CouchDB Blog

Registration Is Open for CouchDB Conf, Nov 13th

CouchDB Conf is a one-day conference in Vancouver, Canada on November 13, 2013. I am excited to let you know that registration is now open! Early bird tickets are $150, and are available until October 13th. (So get yours quick!)

Purchase your ticket for CouchDB Conf now

CouchDB Conf will convene 200 developers and technology evangelists. They will come together to learn about CouchDB, related technologies, and new projects in the community. The agenda will cover everything from getting started to advanced features and internals, app development, and best practices.

View the confirmed speakers

We expect the conference to sell out quickly, so register today to avoid disappointment!

by Noah Slater at October 10, 2013 05:41 PM

Apache CouchDB 1.4.0 Released

Apache CouchDB 1.4.0 has been released and is available for download.

CouchDB is a database that completely embraces the web. Store your data with JSON documents. Access your documents with your web browser, via HTTP. Query, combine, and transform your documents with JavaScript. CouchDB works well with modern web and mobile apps. You can even serve web apps directly out of CouchDB. And you can distribute your data, or your apps, efficiently using CouchDB’s incremental replication. CouchDB supports master-master setups with automatic conflict detection.

Grab your copy here:

http://couchdb.apache.org/

Pre-built packages for Windows and OS X are available.

CouchDB 1.4.0 is a feature release, and was originally published on 2013-09-03.

These release notes are based on the changelog.

Upgrade Notes

  • We now support Erlang/OTP R16B and R16B01; the minimum required version is R14B.
  • User document role values must now be strings. Other types of values will be refused when saving the user document.

Changes

  • COUCHDB-1684: Support for server-wide changes feed reporting on creation, updates and deletion of databases. #917d8988
  • COUCHDB-1139: it’s possible to apply list functions to _all_docs view. #54fd258e
  • Automatic loading of CouchDB plugins. #3fab6bb5
  • Allow storing pre-hashed admin passwords via _config API. #c98ba561
  • COUCHDB-1772: Prevent invalid JSON output when using all_or_nothing _bulk_docs API. #dfd39d57
  • Add a configurable whitelist of user document properties. #8d7ab8b1
  • COUCHDB-1852: Support Last-Event-ID header in EventSource changes feeds. #dfd2199a
  • Much improved documentation, including an expanded description of validate_doc_update functions (commit:ef9ac469) and a description of how CouchDB handles JSON number values (#bbd93f77).
  • COUCHDB-1632: Ignore epilogues in multipart/related MIME attachments. #2b4ab67a
  • Split up replicator_db tests into multiple independent tests.

by djc at October 10, 2013 12:07 PM

October 04, 2013

Till Klampäckel

SQL MAX() and GROUP BY for CouchDB

While re-writing a couple SQL statements into CouchDB we got stuck when we wanted to do a SELECT MAX(...), id ... GROUP BY id in CouchDB.

MySQL

Imagine the following SQL table with data:

mysql> SHOW FIELDS FROM deploys;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| project     | varchar(10) | NO   |     | NULL    |       |
| deploy_time | datetime    | NO   |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

In order to get the latest deploy for each project, I'd issue:

mysql> SELECT MAX(deploy_time), project FROM deploys GROUP BY project;
+---------------------+----------+
| MAX(deploy_time)    | project  |
+---------------------+----------+
| 2013-10-04 22:01:26 | project1 |
| 2013-10-04 22:02:17 | project2 |
| 2013-10-04 22:02:20 | project3 |
+---------------------+----------+
3 rows in set (0.00 sec)

Simple. But what do you do in CouchDB?

CouchDB

My documents look like this:

{
  "_id": "hash",
  "project": "github-user/repo/branch",
  "deploy_time": {
     "date": "2013-10-04 22:02:20",
     /* ... */
  },
  /* ... */
}

So, after more than a couple hours trying to wrap our heads around map-reduce in CouchDB, it's working.

Here's the view's map function:

function (doc) {
  if (doc.project) {
    emit(doc.project, doc.deploy_time.date);
  }
}

This produces nice key value pairs — in fact, multiple — for each project.

And because the map-function returns multiple, we need to reduce our set.

So here is the reduce:

function (doc, values, rereduce) {
  var max_time = 0, max_value, time_parsed;
  values.forEach(function(deploy_date) {
    time_parsed = Date.parse(deploy_date.replace(/ /gi,'T'));
    if (max_time < time_parsed) {
      max_time = time_parsed;
      max_value = deploy_date;
    }
  });
  return max_value;
}

The little .replace(/ /gi,'T') took especially long to figure out. Special thanks to Cloudant's seńor JS-date-engineer Adam Kocoloski for helping out. ;-)

Step by step

  • iterate over values
  • fix each value (add the "T") to make Spidermonkey comply
  • parse, and compare
  • return the "latest" in the end

A note of advice: To save yourself some trouble, install a local copy of Spidermonkey and test your view code in there and not in your browser.

Open the view in your browser: http://localhost/db/_design/deploys/_view/last_deploys?group=true

{
  "rows":[
    {
      "key":"testowner/testname/testbranch",
      "value":"2013-09-13 11:41:03"
    },
    {
      "key":"testowner/testname/testbranch2",
      "value":"2013-09-12 16:48:39"
    }
  ]
}

Yay, works!

FIN

That's all for today.

by Till Klampaeckel (till@php.net) at October 04, 2013 08:40 PM

February 19, 2013

EasyBib

Cloudant's NYC meet-up & webinar!

Cloudant’s NYC meet-up will take place at our office this Wednesday (tomorrow)! Please RSVP using the following link:

http://cloudantimagineeasy.eventbrite.com/

The office’ address is 12 West 31 St:

<iframe frameborder="0" height="350" marginheight="0" marginwidth="0" scrolling="no" src="https://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=12+East+31+Street,+NY,+United+States&amp;aq=0&amp;oq=12+West+31+St,+NY&amp;sll=37.0625,-95.677068&amp;sspn=38.826758,78.662109&amp;t=h&amp;ie=UTF8&amp;hq=&amp;hnear=12+E+31st+St,+New+York,+10016&amp;z=14&amp;ll=40.745971,-73.985233&amp;output=embed" width="425"></iframe>
View Larger Map

If you can’t make the meet-up, make sure to check out the webinar on Thursday:

https://www1.gotomeeting.com/register/648768041

by tillinside at February 19, 2013 07:23 PM

February 12, 2013

EasyBib

EasyBib and Cloudant

Slides from a talk I gave at the CouchDB conference in Berlin last month. As always, the slides are on speakerdeck:

https://speakerdeck.com/till/easybib-and-cloudant

— Till

by tillinside at February 12, 2013 02:44 PM

February 06, 2013

IrisCouch

Announcing Premium Server

We’re excited to announce our latest product—a Premium Server option for Iris Couch users. Premium Server gives serious users an option to increase the stability and response time of their couches. It costs $75/month (in addition to the regular, metered fees), and buys you oh-so-much-more peace of mind... and performance.

A Premium server is more responsive and reliable than a standard CouchDB server. Premium servers run on isolated, dedicated clusters.

Interested? Log in and enable Premium Server in our billing page.

Once you have a credit card on file, you will see a Premium Server option. If for any reason you’re dissatisfied with the service, you can cancel at any time.

More Details

What, exactly, is a Premium server?

Premium servers run permanently in specialized clusters, with dedicated CPU and memory. Premium servers run on a common physical server, with dedicated CPU, memory, and i/o resources. Nothing is “oversold.”

Premium servers never pause when idle. Typically, if a couch goes unused for too long, we pause it, freeing resources to share with others. Unfortunately, infrequent usage suffers high latency. Premium servers do not have this issue.

Premium servers are monitored. Our automated tools monitor everything. But people watch every premium server 24/7. If we see any server issues, we respond immediately.

Premium servers are isolated. Each cluster runs in a dedicated DNS zone and uses dedicated HTTP infrastructure. Issues in one cluster do not affect another.

Premium servers work. Thanks to many of our users for months of beta testing. Premium service already supports many couches, such as the Node.js npm registry, a mission-critical CouchDB service, processing over 100 million monthly requests.

by Jeff (jeff@iriscouch.com) at February 06, 2013 02:08 PM

February 01, 2013

Jan Lehnardt

The State of CouchDB

Slides to go with the headings.


Hi, welcome to CouchDB Conf.

CouchDB means a lot to me and it makes me very happy that you are all here today.

Who am I

My name is Jan Lehnardt and I am the elected project management committee chair of the Apache CouchDB project. If you don’t know what this means, don’t worry, it means I sign up to deal with politics and paperwork voluntarily.

I have been with CouchDB since 2006. My first contribution was the initial UNIX build system to CouchDB. I stuck around ever since.

My main job back then was PHP/MySQL consulting and Open Source work as my own 20% project. In 2007, I started giving talks about CouchDB at user groups and conferences and quickly became addicted. People called me the CouchDB Chief Evangelist, although I don’t really like the title. From 2008 I started getting contracting jobs specifically for CouchDB and things blew up quickly that it became clear soon, that an organisation of some sort was needed to handle this. I eventually joined forces with CouchDB’s original inventor and J Chris Anderson to form the company Couch.io. We initially weren’t keen on taking venture capital, but when the whole NoSQL thing blew up, it was very hard to say no and on January 1st 2010 we were in business.

Couch.io turned into CouchOne and was eventually merged with Membase into Couchbase. Unfortunately, at this point, there isn’t much Couch-y about Couchbase aside from some underlying technology, so the name can be confusing.

I parted ways with Couchbase a week ago in order to concentrate and focus more on Apache CouchDB and related technologies.

CouchDB isn’t Dead

In late 2011 two major supporters of CouchDB withdrew their support: Canonical’s UbuntuOne service, on paper a poster-child use-case for CouchDB and Saucelab’s Selenium platform publicly made clear that they were moving to other technology. It wasn’t a big deal if you looked closely, the one project didn’t have enough resources to integrate with CouchDB the right way and the other diverged so far from the original system design, that CouchDB was no longer a good fit. We were and we remain good friends with the respective developers, so we didn’t feel like pointing that out specifically. The result though was that people who didn’t look closely saw that CouchDB had popular failures where it hadn’t. This wasn’t all bad, but set the stage for another incident a few weeks later.

CouchDB’s original inventor publicly announced that he’d move on from Apache CouchDB to Couchbase fully. That new technology would only go into Couchbase. If you are in the know, this wasn’t a big deal again, he hadn’t contributed to CouchDB in two years, Couchbase was a different thing and he wanted to rally support for that. The casual reader though took away one lesson: “CouchDB is dead”.

With the added confusion of Couchbase’s name, and continuing their CouchConf conferences, things looks dire.

CouchDB 2012

With this in the wild, the active CouchDB committers got together and put out an excellent 1.2.0 release that was accompanied by a new, modern website design. We thought instead of writing counter-statements and start unnecessary he-said-she-said discussions, we’d rather concentrate on shipping good software. 1.2.0 was well received and the whole thing lead the team to come together as a whole in Boston and two weeks later in a smaller group in Dublin in April 2012.

We came up with a long list of of features that we wanted to get into CouchDB. Some work happened over the summer, but I personally took a bit of a break to avoid burn-out from CouchDB. In fall, things started moving faster again when more community members started pushing things along. New contributors came and we finally came up with a way to go forward.

We decided to not be insane. The definition of insanity is trying the same thing over and over again and expecting different results. While it wasn’t all bad in CouchDB land we could do better and to do better we had to change a few things.

CouchDB Reboot

We determined that CouchDB needs a fresh mission statement. I signed up to come up with a few drafts, but nothing happened yet, so this one is still out there cough.

We decided to release more often. With the upcoming 1.3.0 release we will switch to a quarterly release cycle. A new minor version will come out approximately every 90 days, even if it is just a few bug fixes that a small number of people direly need.

CouchDB 1.3.0 will ship with top-notch API documentation right inside of Futon, the built in admin interface.

We will start to set up teams where anyone can sign up to work on a specific thing: docs, our JavaScript components, the Erlang core, the admin interface (built in HTML+JS). We want to make sure anyone who has the right skills can contribute in their area of expertise and not be scared away by the Erlang.

We put some emphasis on QA, automated testing, building binaries and packages for releases as well as in-development versions, so people can try new features before they come out more easily and as a result report issues early.

A few of the core team will put some focus on encouraging contributions rather than coding themselves. We hope to get more people on board with CouchDB development.

We also started doing roughly quarterly in-person meetings (at least as smaller groups) and weekly status meetings on IRC to give everything a little more focus and transparency.

The next few slides show a long list a few features that we’ll be working on. If you think anything is missing, let us know!

The more prominent things are: Merging rcouch, BigCouch, the new Futon, the plugin system and v8/node integration.

rcouch is a cutting edge distribution of CouchDB with many experimental features. A lot of that work is useful for Apache CouchDB and we plan to fold those back into the project.

BigCouch is a industry-strength clustering solution for CouchDB to allow seamless scaling and storing of lots of data. BigCouch is going to be merged into mainline CouchDB as well.

The admin interface Futon is getting a complete refresh with modern web development technologies.

There are many features hidden in some developer’s git repository because, while useful, it wasn’t generally applicable to CouchDB. With the plugin system, we hope that we can fuel a repository of plugins to CouchDB that are easily installed (think browser extensions, right from Futon). For example, you could install GeoCouch with the click of a button.

Finally, we are currently discussing the move from SpiderMonkey and to V8 or even Node. The jury is still out on which one it is going to be, but we hope that this is going to open up a lot more opportunities for CouchDB in terms of features and new contributors.


Community

CouchDB would be nothing without you, the community. People who know little about CouchDB might like it or not, but people who really get to know CouchDB are extremely passionate about it.

CouchDB’s core idea, the promise that data can be anywhere it is needed, to make applications easier, more approachable and effective for people in modern computing environments, that idea is a big one. It’s the one that brings this community together.

Thanks again for coming, you are all awesome. CouchDB means a lot to me and I get a little teary seeing you all here.

If you like any of the above todos, or have some of your own, please help out, get in touch about how.

Friends of CouchDB

The CouchDB ecosystem is full of exciting projects that support CouchDB in one way or another.

PouchDB

PouchDB is the newest project on the scene. PouchDB is a pure JavaScript implementation of CouchDB targeted at the browser.

Let me say that again: CouchDB in JavaScript, for the browser.

PouchDB is the oldest idea, but it took the longest to realise because browsers weren’t ready for it. Now is the time though that we can build and ship a CouchDB compatible data store and replication engine that lives entirely in your browser. If you want to build web apps that can seamlessly synchronise data between a laptop, a phone and a server and not treat one as a “master” and the other as “slaves”, PouchDB is your solution.

TouchDB

TouchDB-iOS and -Android are Objective-C and Java implementations of the same idea, but for mobile phone platforms. They natively integrate into your iOS and Android applications and allow synchronisation between themselves, multiple devices, CouchDB’s on the server and even PouchDB in a browser. Again, a milestone in fulfilling the CouchDB vision: data where it is needed, not on some server, far away over a slow and unreliable or even unavailable connection.

Node.js

This might not be too obvious to people who don’t do Node, but CouchDB is big, if not essential here, too. As any programming language & platform, Node.js comes with a package manager called NPM. As far as package managers go (and I’ve used them all except I think ant) NPM is the one that sucks least, or rather, it is pretty good.

If you are invested in Node.js programming NPM isn’t just a tool you can use, it is essential to the development and deployment workflow of your applications. It is that good.

And here is the kicker: NPM’s (de)-central registry is build on CouchDB. NPM is effectively a CouchApp. The Node elders love CouchDB.

I suggest, and plan to turn this into an opportunity for CouchDB. Say, for example, we need benchmarking tools for CouchDB. The Node folks are great at that. If we were to go and say, “hey, do you want to help make NPM faster? Help us build benchmarking tools, so we can speed up CouchDB for you.” — And that’s just one idea, the potential collaboration is immense. Add to that that we maybe get native Node support inside CouchDB, we can do all sorts of crazy shit like writing core add-ons to CouchDB in JavaScript.


Finally, I’d like to mention Hoodie, a project that Gregor, Alex, I and a few friends have been working on on and of over the past year. It is frontend web app framework that uses Node and CouchDB. We are happy to show that to you on the weekend.

The Node Firm

I am going to mention Node.js one more time. Some of you might know The Node Firm, but for those who don’t, think of it as a company made up of the core contributors to Node.js that come together as a collective of professionals to offer services around Node.js that are complementary to the open source project. Things like consulting, technical vetting, training, things that an open source project rarely can do itself.

The key part for me to like The Node Firm (I joined recently) is that, and I repeat, it is complementary to the open source project. It doesn’t try to extract any value from the project, but merely satisfies demand for services that the project can provide. Finally, proceeds are going right back into the community, in the form of conference support, swag, stickers, t-shirts, and so on.

I think this is a brilliant set up for an open source company and I hope many will fork this model.

With that as a preamble, I am happy to announce that together with Dave Cottlehuber and the preliminary support of a few community members, we are launching The Couch Firm, modelled after The Node Firm.

It is early days for us, but expect the same setup, a business complementary to the open source project.

Conclusion

Above all, Open Source is about transparency and community, and I hope you feel you have an accurate picture of where we’re at right now. We had a hard year, lost our traction, and we still came out on top.

With this, I’ll leave the stage for a day of exciting speakers with all sorts of crazy cool topics.

Thank you all for being here!

February 01, 2013 12:00 AM

CouchDB Conf Recap

On January 25-27th 2013 we ran CouchDB Conf Berlin. A one-day conference and two-day CouchHack event dedicated to the Apache CouchDB community and technology.

Why

CouchDB Conf was born out of the desire to run an Apache CouchDB Technology conference. Couchbase’s CouchConf used to be that, but has moved away, while sadly keeping the name.

The CouchDB community is a busy bunch and any excuse to get together is taken up with enthusiasm. CouchDB Conf was sold out with ~70 participants in a wintery Berlin.

Conferences in general are great for various reasons:

  • the core developers get some face time to have a good time, but also to get neck deep into discussions and hacking that require in-person communication. Lots of future plans can be hashed out quickly as well. We made good use of that.

  • the user community gets to hang out with the core developers, learn about how they work and most importantly, get to ask all the fun, hard, silly and important questions they never dared ask before. We also made good use of that.

  • Everybody gets to show of what they are working on and get everybody else excited about it. We made extensive use of that. Exictement was rampant.

Eventify captured a few good impressions.


Talks

The slides for the talks are all linked up on the conference site.

One common thread through all presentations that CouchDB’s replication feature is most the popular thing CouchDB has to offer. HTTP and JSON are nice and simple, but replication is the one thing all would go out of their way to point out that it is the thing that makes CouchDB most attractive.

CouchDB’s vision early on was to be able to run on small clients, big servers, with lots of data and very little data, mobile phones and really any device that one can carry around, and crazily enough also in the browser. For the longest time though this was a bit of a pipe dream, as the Erlang CouchDB implementation wasn’t really suited to run on low-power devices and definitely not in a browser.

This now changed. BigCouch makes the start, as it handles CouchDB’s BigData and clustering aspirations. It has been around for a while, but is now finally being integrated into Apache CouchDB proper.

Hot on the heels is TouchDB, which comes in two flavours: iOS and Android, or Objective-C and Java respectively. Both are native reimplementations of CouchDB for mobile devices. TouchDB-iOS is production ready (a few apps are already live), the Android version is a little behind and both are open for contributions.

The newest player on the scene is PouchDB, a pure JavaScript implementation of CouchDB targeted at modern desktop and mobile browsers. Albeit being the newest member of the CouchDB family, it has the highest activity and was recently selected to act as a sample project in the Stanford Computer Science course. It is on the verge of being production ready.

All of this finally brings CouchDB’s vision together. Lots of data can live on BigCouch clusters, regular data can live on regular servers, user-data can live on mobile handsets, tablets and even in the browser and data can float freely between all of them. Application developers no longer have to worry about how to get a user’s data in front of them, handle concurrent updates, sync with offline devices and online servers. Even peer-to-peer sync is possible.

Towards the end of the day, when the whole vision inadvertently came together, the energy levels were very high. And nothing fuels developers better than seeing users getting excited.

Shit is getting real, as the kids say.

CouchHack

The following weekend was dedicated to hands on hacking, some more cool show & tell type talks and a Skype-powered video talk from Bangkok.

Among the highlights are: - CouchDB/rcouch running on the RaspberryPi with Zeroconf auto-networking and everything. - A preliminary port to BlackBerry 10. - Wallaby, a native QT-based app framework that uses CouchDB for data storage & sync. - Hoodie, a pet project of ours. - CouchDB Operations. - Hands on hacking with PouchDB. - Hands on hacking with TouchDB. - Hands on hacking with PouchDB and TouchDB. - Clearing out 30+ issues in preparation for the 1.3.0 release. - Adding GeoCouch functionality to PouchDB.

Use the Time Slider feature to see the topics for all days.

Thanks

As the organiser, I couldn’t be more happy about how CouchDB Conf has turned out. Of course, I couldn’t have it all done by myself, so I’d like to thank the following people and companies:

The Speakers

Katrin Apel, Dale Harvey, David Zuelke, Martin Hilbig, Nuno Job, Volker Mische, Oliver Kurowski, Jason Smith, Robert Newson, Joan Touzet, Stephan Strohmeier, Till Klampaeckel and Randall Leeds.

The Helpers

Gregor Martynus, Dave Cottlehuber and Jan Friedensreich.

The Companies

Co.Up for hosting us, Tito.io for the flawless ticketing, GitHub & Cloudant for the drinks, Nodejitsu, FreshX, Mozilla, EasyBib and IrisCouch for sending people or donating company time.

Next

There are preliminary plans to set up a CouchDB Conf in Seattle later this year. We’ll keep you posted.

Members of the CouchDB Community will be attending the following conferences:

You are welcome to join us and nerd out about CouchDB :)

Thanks!
Jan

February 01, 2013 12:00 AM

Changes and New Beginnings

About two weeks ago I parted ways with Couchbase’s day to day business. Not that I was involved much in the end, but it was time to move on. I remain a co-founder and shareholder, but my regular involvement is over.

This wasn’t an easy decision, and as those go, it took me a good while to make it.

About a year ago I started noticing a change. Things I’ve always cared about intensified manyfold and my work situation didn’t leave me with much time and energy to pursue them.

Couchbase made every attempt to accommodate me, let me work on Apache CouchDB for most of the past year, and help with an arrangement where I could spend some of my time at my discretion (with no pay, but enough work to keep me afloat) and I am very grateful for that opportunity.

I spare you the details (ask me over a drink), but in the end I had to answer the question of whether I am a CouchDB person or a Couchbase person. I had to answer that for my working relationship with Couchbase and ultimately I had to answer that for myself.

My heart knew, of course, but leaving a company that you helped founding isn’t the easiest of things to consider. I carried that conflict through most of 2012 and I tried to make things work in a compromise, but ultimately failed, realising that I am, at heart, a CouchDB person.


2012 wasn’t the best of years for CouchDB. That helped me realise how much I believe in the idea and the community behind it.

I learned a lot about myself, turned 30 in December. Around that time, the introspective period of the year turned into action. I was done contemplating what to do with newfound revelations and had a vague plan of the direction things should go towards.


There are a number of distinct moments that helped me figure out what is important to me.

Rails Girls

The Rails Girls movement teaches non-programmers web programming for free. Volunteers from the Rails community would spend their weekends teaching, regular week-nights coaching development groups. All stuff I thought was honourable, but I didn’t see how I could fit that into my schedule, along my regular work and have enough energy to do it all. Yet I saw others doing just that. This created an urgency for changes, so I could, while not teaching Rails Girls, do things I deem important. More on that later.

In the spirit of Rails Girls we started a JavaScript workshop JSFAB (JavaScript for Absolute Beginners) which, along with other similar initiatives eventually culminated in OpenTechSchool, a roof organisation for volunteer learning and teaching. The idea spreads like fire, still, into other tech communities, and other cities and countries. This is truly a tech education innovation. I am very proud to be a part of this.

Gleicherlohn.de

Around the US Equal Pay Day Gina Trapani put up Narrow the Gapp. Anne suggested there should be something like that for Germany, so I spent a total of four or so hours to rip off the project’s UI (open source) and made it so Anne could put in the hard data into a JSON file on GitHub.

Gleicherlohn.de was a mini project with a large effect. The lesson for me though was that web technology, while incredibly accessible already, is still not easy enough to handle for regular people, even technically inclined non-programmers struggle. Why, I thought, would Anne not be able to put this up all by herself.

Then I realised what my original motivation for working on CouchDB and eventually founding Couch.io was: empowering people to use technology to their advantage. I wanted to get back to that.

Giving Back

While talking to friends last winter I made the realisation that we technology people are a rather privileged bunch. Not that there is anything wrong with that, but for me that means finding ways to give back to the communities that enable me to live such a privileged life. Teaching and making technology more accessible fit right in there, so it wasn’t hard to figure out what to do. Instead of working five or seven days a week, I tried to find a way to work as much as I need to live comfortably, while having enough time and energy to pursue pro-bono work. Again, Couchbase was very accommodating here.

Diversity

One last topic that found its way to me is diversity in tech communities. The numbers don’t look particularly good, so I tried to find ways to get this improved. This lead to helping Tiffany to get We Are All Awesome set up, start our diversity-friendly Call for Papers for JSConf EU and the result that we were able to organically get 25% women speakers, an absolute novelty for hardcore tech conferences.

More importantly though is that we inspired many more events to follow in our footsteps, improve on what we did and share the results. I lost count of how many conferences took after us, but is easily 20+. The resulting cultural change is immense. I couldn’t be more proud of that.


I want to make sure I can continue to do this work and I hope I can inspire more people to do the same in the way that works best for them. In terms of work, I want to be able to work on things that matter and get paid fairly, but also not over-do it. Leave enough time to work outside of work.

To that end, I am doing three things:

The Node Firm is a complementary company to the Node.js open source project. A collaboration of professionals to support the open source projects in areas it can’t provide itself.

The Couch Firm is exactly that, but for CouchDB. It is early days, I’ll keep you posted.

Hoodie is a thing to be revealed at a later time, but it is not exactly a secret, if you know where to look.


2013 looks mighty exciting from where I am sitting.

I can’t wait to get started!

February 01, 2013 12:00 AM